您的位置:首页 > 编程语言 > Java开发

Java Timestamp从MySQL数据库取出的字符串转换为LocalDateTime

2016-01-26 16:08 661 查看
最新在工作中使用了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);
}



亲测可用。
由于我寻找其他方法不是很详细,可能有更好的方法。哪位同行有好的方法,请不吝赐教。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐