Java 将双倍更改为日期

Java change double to Date

当我尝试将 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.66itemDateStr就是2013-06-05 21:10:09.660。格式化的日期字符串不正确。

这是怎么发生的?

你有 0.66*1000=660 是正确的

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