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);
当itemDouble
为1370437809.00
时,itemDateStr
为2013-06-05 21:10:09.00,
但是当itemDouble的小数点不为零时,比如1370437809.66
,itemDateStr
就是2013-06-05 21:10:09.660
。格式化的日期字符串不正确。
这是怎么发生的?
你有 0.66*1000=660 是正确的
根据你的代码,1370437809.66
是自1970年以来的秒数。小数部分代表660毫秒。当您转换为 Date
时,您要求显示毫秒(模式中的 .SSS
)。你得到的结果是正确的。
当我尝试将 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);
当itemDouble
为1370437809.00
时,itemDateStr
为2013-06-05 21:10:09.00,
但是当itemDouble的小数点不为零时,比如1370437809.66
,itemDateStr
就是2013-06-05 21:10:09.660
。格式化的日期字符串不正确。
这是怎么发生的?
你有 0.66*1000=660 是正确的
根据你的代码,1370437809.66
是自1970年以来的秒数。小数部分代表660毫秒。当您转换为 Date
时,您要求显示毫秒(模式中的 .SSS
)。你得到的结果是正确的。