Java将日期改为double

hen*_*_gk 2 java double 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);
Run Code Online (Sandbox Code Playgroud)

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

怎么回事?

ose*_*het 5

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

  • "S"的数量没有改变原因.`S`表示毫秒.你有660毫秒,所以格式化程序显示660.`S`的数量控制值的零填充:使用`SSS`,值'5'将显示'005'; 使用`SS`,它将显示'05'. (2认同)