字符串日期 转换成 需要的格式的 字符串日期
调用:dateformat(String pattern,Object date, boolean ifNullGetNow);
参数1:patern:你想要的日期格式,如:“yyyyMMddHHmmss”,“yyyy-MM-dd HH:mm:ss”,“MMdd”,“yyyy/MM/dd HH:mm:ss”,“dd”,显示单个或多个,都支持,你想要什么给什么。如果你给个年1989,你想要年月日时分秒,后面补0
参数2:date:你想要转的日期字符串,这里是Object是为了支持数据库查出来在map里是Object格式。如果你是date格式或者其他类型的,这种特殊类型你可以用其他的转换方法,这里只支持正常数据库保存的字符串格式。这个参数可以为空,传空,不报错,后台返回给你个""空串。此时,你想如果为空返回当前时间的你要的格式。没问题,最后一个参数控制。
参数3:ifNullGetNow :如果为空获取当前时间。如果你传的日期不为空,你还想要当前时间,不好意思,没有。如果你日期传了空,想要当前时间,这个字段传true,如果不想要当前时间,那么传false,我返回空串。
/*** 传入日期格式和日期,返回目标日期String* @description 日期格式转换,从一种string日期格式转换成目标string日期格式* @param pattern 需要转换的日期格式* @param date 需要转换的日期 如"-11:07.11/22:55" "-11:07.11/22:55" "-11-07" * @param ifNullGetNow 如果为空或空串,true获取当前时间的需要格式,如果为false,返回date* @return String 目标字符串日期格式* @author LLZ* @date 7月26日*/public static String dateformat(String pattern,Object date, boolean ifNullGetNow) {if(date == null || "".equals(date)) {if (ifNullGetNow) {return new SimpleDateFormat(pattern).format(new Date());} else {return "";}}String dateStr = date.toString();//将非日期的分隔符去掉dateStr = dateStr.replace("-", "").replace(":", "").replace(" ", "").replace("/", "").replace(".", "");//yyyyMMddHHmmss 使用这个14位的作为标准格式int length = 14 - dateStr.length();// 不足14位补0if(length > 0) {dateStr = dateStr + String.format("%0" + length + "d", 0);}Date temp;try {temp = new SimpleDateFormat("yyyyMMddHHmmss").parse(dateStr);//转换成yyyyMMddHHmmss统一格式,拿到Date格式return new SimpleDateFormat(pattern).format(temp);//把Date格式再格式化为pattern格式的字符串日期} catch (ParseException e) {// TODO Auto-generated catch blocke.printStackTrace();} return null;}
网上有很多,不合格,要么不兼容,要么麻烦的要死,写个简单的分享给大家。兼容性很高。给我个字符串日期,然后给我你想要的格式如yyyy-MM-dd或yyyyMMddHHmm或MMdd等等,然后我返回给你这个格式的字符串日期。
我自己写的自己很满意,如果为空,你要是要当前时间的,传个true,我给你当前时间的你要的日期,如果不要,我传空串给你,也不会报错,也不会抛异常。nice,代码简洁,通用性强,易达到目的,且性能好。反正我自己用的非常爽。
调用方法:dateformat(“yyyy-MM-dd HH:mm:ss”,dateString,false);//时间为空的时候,false不要当前时间,true要当前时间。