【发布时间】:2023-03-16 15:15:01
【问题描述】:
我正在尝试使用此代码将时间戳转换为日期:
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。
如您所见,年份部分未正确转换。如何解决此问题?
【问题讨论】:
-
你确定你的毫秒值是正确的吗?据我所见,这种转换是可以的。当您的值 14799744000000800 更大时,21-03-2016 是 1458518400000 毫秒
-
最后四位是像这样的时区 1479974400000-0800
标签: java datetime time timezone timestamp