使用的代码如下:
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的值小数位是00的时候结果是正常的,比如itemDouble是1370437809.00的时候itemDateStr is 2013-06-05 21:10:09.00。 当itemDouble的值小数位是00的时候结果是正常的,比如itemDouble是 1370437809.66的时候, itemDateStr is 2013-06-05 21:10:09.660,小数位就多了一位。
请问这是什么原因造成的?
因为1s=1000ms,所以不管你设置成SS还是SSS,都是显示最终的结果,而不会截取。最终的结果是660ms,所以显示21:10:09.660而不是21:10:09.660,除非你毫秒小于100。
列如
double itemDouble = 1370437809.01;
long itemLong = (long) (itemDouble * 1000);
Date itemDate = new Date(itemLong);
String itemDateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SS").format(itemDate);
System.out.println(itemDateStr);
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。