【发布时间】:2017-12-15 15:49:30
【问题描述】:
我一直在摸不着头脑,试图理解为什么 FastDateFormat 解析器返回一个非常不正确的时间。我尝试转换的字符串时间戳是 GMT/UTC,我尝试将其插入 DB2 的时间戳列中。
代码如下:
String gmtTimestamp = "2017-03-12 02:38:30.417000000";
FastDateFormat fdf = FastDateFormat.getInstance("yyyy-MM-dd HH:mm:ss.SSSSSSSSS", TimeZone.getTimeZone("GMT"));
java.util.Date d = fdf.parse(gmtTimestamp);
Timestamp ts1 = new Timestamp(d.getTime());
System.out.println(ts1);
打印的时间是:“2017-03-16 17:28:30.0”,4 天和将近 15 个小时的休息时间。这里发生了什么?
【问题讨论】:
-
您使用的是哪个版本的 apache.commons?
-
commons-lang3 版本 3.4
-
不知道
FastDateFormat的猜测:417000000被解释为毫秒,大约是4.8天。 -
Datetime parsing error 的可能重复项。我知道另一个问题是使用
SimpleDateFormat,但这两个是等价的。
标签: java timestamp apache-commons