情景
用java 代码从数据库中获取某时间字段,显示的内容多了一个零。如:数据库中是2019-6-1 12:05:54
,java读取出来为2019-6-1 12:05:54.0
。
那么问题来了,该如何将这个字段显示为正常的时间格式呢?以及java为什么读取出来会多一个零呢?
原因
原因是数据库中改字段是 datatime
类型,使用java读取该字段时对应的类型为timestamp
类型日期。
解决方案:
清单一:时间转换
String endAt= map.get("endAt").toString() // 这个是从数据库读取出来的,debugger时,可以看到是timestamp类型
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
Date date = simpleDateFormat.parse(endAt)
String endAtStr = simpleDateFormat.format(date)
println("endAt[原本从数据库读出来的 timestamp 类型日期] : " + endAt);
println("date.toLocaleString() [打印Data.toLocaleString()]: " + date.toLocaleString());
println("fmt.format(date) : " + endAtStr );
运行结果:
endAt[原本从数据库读出来的 timestamp 类型日期] : 2019-05-02 23:59:59.0
date.toLocaleString() [打印Data.toLocaleString()]: 2019-5-2 23:59:59
fmt.format(date) : 2019-05-02 23:59:59