欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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);
	}



亲测可用。
由于我寻找其他方法不是很详细,可能有更好的方法。哪位同行有好的方法,请不吝赐教。