Java将unix时间戳转换为错误的时间

时间:2014-12-01 12:54:11

标签: java unix unix-timestamp

我将unix timestammp存储在mysql中。我正在把它转化为时间。它显示错误的时间。

这是代码:

Date date = new Date((long)timestamp*1000); 
SimpleDateFormat sdf = new SimpleDateFormat("h:mm a"); 
sdf.setTimeZone(TimeZone.getTimeZone("GMT+5:30"));
timeString = sdf.format(date);
System.out.println(timeString);`

timestamp是包含unix时间戳的变量 例如:对于timestamp=1417437428505它应该显示下午6:07并显示12:31 AM

它的解决方案是什么?

3 个答案:

答案 0 :(得分:4)

您将Unix纪元以来的已经的时间戳(以毫秒为单位)乘以1000.您只需要:

Date date = new Date(timestamp);

如果你查看所有日期,而不仅仅是时间,你会看到它目前在46886!

答案 1 :(得分:1)

你确定需要乘以1000吗?我试过没有乘以Date date = new Date(timestamp);并且打印时间是下午6:07

答案 2 :(得分:0)

中删除乘以1000

日期日期=新日期((长)时间戳* 1000);

比它有效。