时间戳在java中没有正确转换日期

时间:2016-12-06 06:52:22

标签: java datetime time timezone timestamp

我尝试使用以下代码将时间戳转换为日期:

String str = "14799744000000800";//last four digit is time zone
 DateFormat timeZoneFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
 timeZoneFormat.setTimeZone(TimeZone.getTimeZone("GMT-8"));

 Date time = new java.util.Date(Long.parseLong(str));
 System.out.println(timeZoneFormat.format(time));

但它打印! 21-03- 470955 00:00:00'而不是21-03-2016 00:00:00。

正如你所看到的,年份部分没有正确转换。如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

当前的毫秒值为1481007881541,因此14799744000000800似乎确实在未来。

修改 根据您之后的评论,您可以从字符串中删除最后四位数。