用将String类型的数据'20180824150630'转化成Date类型保存到MySql数据库

版权声明:本文为博主原创文章,未经博主允许不得转载。我知道这样说了也没用,你转吧 https://blog.csdn.net/Weidong32768/article/details/82019331

前两天做一个需求,因为以前这张表里没有记录日期。现在需要业务需要日期,哎。

将左边的的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及以上。兄弟们转起来,不要让其他兄弟受苦啦!

猜你喜欢

转载自blog.csdn.net/Weidong32768/article/details/82019331