当我尝试将double转换为Date时出现问题。
这是我的代码:

double itemDouble = 1370437809.00;
long itemLong = (long) (itemDouble * 1000);
Date itemDate = new Date(itemLong);
String itemDateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SS").format(itemDate);


itemDouble1370437809.00时,itemDateStr2013-06-05 21:10:09.00,
但是当itemDouble的小数位不为零(例如1370437809.66)时,itemDateStr2013-06-05 21:10:09.660。格式化的日期字符串不正确。

这是怎么发生的?

最佳答案

根据您的代码,1370437809.66是自1970年以来的秒数。小数部分代表660毫秒。转换为Date时,要求显示毫秒(模式中的.SSS)。您得到的结果是正确的。

10-04 21:39