Java Timestamp从MySQL数据库取出的字符串转换为LocalDateTime
程序员文章站
2022-07-10 19:08:08
...
最新在工作中使用了Java 8的LocalDateTime这个新的日期时间类,整体感觉还是不错的。
不过在使用过程中遇到一个问题,写了个转换方法。
我在从一个从数据库取出并生成的一个名为user的实体对象。这个实体对象包涵一个String(BTW.为什么Java到8了还不能像c#一样写成string)类型的属性,这个属性是由数据库中的timestamp直接转换过来的,所以生成了一个 "2016-01-25 17:55:38.0" 这个的字符串。可是在使用LocalDateTime.parse()方法(两个重载方法都不行)会有DateTimeParseException抛出,我在文档里没找到LocalDateTime提供的合适的转换的方法。所以小实验了一下,写了下面的转换方法。
/** * * @Title * @Description 将带有纳秒的时间字符串转换成LocalDateTime * @param str * @return */ public static LocalDateTime timestampStrToLocalDateTime(String str){ long millis = Timestamp.valueOf(str).getTime(); Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(millis); Date date = calendar.getTime(); SimpleDateFormat sdm = new SimpleDateFormat(LocalDateTimeUtils.LONG_DATE_FORMAT); return LocalDateTime.parse(sdm.format(date), LocalDateTimeUtils.LONG_DATE_FORMATTER); }
亲测可用。
由于我寻找其他方法不是很详细,可能有更好的方法。哪位同行有好的方法,请不吝赐教。