前两天做一个需求,因为以前这张表里没有记录日期。现在需要业务需要日期,哎。
将左边的的String数据转变成Date类型保存起来,哈哈。
我觉得很好玩儿,分享一波。来把我封装的工具分享出来。(此处应有掌声!!!)
(下图是大致模样)
之前用jdk1.7, 截取字符串再转成long类型,再日期格式化出错,得出的日期不对如下图:
后来想起来上周末看了《java8实战》想起了里面日期新特性。嘿嘿,试了一下好了,请开始我的表演!
代码如下:
/**
* 传入String 数字字符串
*
* 将长整型数字转换为日期格式的字符串
*/
public static Date string2Date(String getOutTradeNo){
Date date;
int year;
int month;
int day;
int hour;
int minute;
int secord;
String result = getOutTradeNo.substring(10, 24);
year = Integer.parseInt(result.substring(0, 4));
month = Integer.parseInt(result.substring(4, 6));
day = Integer.parseInt(result.substring(6, 8));
hour = Integer.parseInt(result.substring(8, 10));
minute = Integer.parseInt(result.substring(10, 12));
secord = Integer.parseInt(result.substring(12, 14));
LocalDateTime localDateTime = LocalDateTime.of(year, month, day, hour, minute, secord);
//将LocalDateTime转换为Date
ZoneId zoneId = ZoneId.systemDefault();
ZonedDateTime zdt = localDateTime.atZone(zoneId);
date = Date.from(zdt.toInstant());
return date;
}
这次用了一波java8新特性,新日期API,localDateTime类。请用JDK1.8及以上。兄弟们转起来,不要让其他兄弟受苦啦!