繁体   English   中英

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

[英]Java convert unix timestamp to wrong time

我有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

它的解决方案是什么?

你将自Unix时代以来已经以毫秒为单位的时间戳乘以1000.你只需要:

Date date = new Date(timestamp);

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

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

删除乘以1000 in

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

比它的工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM