获取时间戳并将其转换为字符串

问题描述:

我使用此函数以秒为单位获取当前时间戳并将其添加到字符串中Double.toString((System.currentTimeMillis()/1000)) 但是,如果不是十进制符号,我会得到“1.23213E9”。如何切换到小数表示法?获取时间戳并将其转换为字符串

最短的是

String secs = "" + System.currentTimeMillis()/1000; 

如果您想保留毫秒可以使用

String secs = String.format("%.3f", System.currentTimeMillis()/1000.0); 

产生像

1342604140.503 
+2

如果你需要高精确度,转换为秒为((双)System.currentTimeMillis()/ 1000'),并结合NumberFormat示例发布@Dario – rineez 2012-07-18 09:12:11

+0

@rineez很好的建议。 – 2012-07-18 09:36:21

String.valueOf(System.currentTimeMillis()/1000) 

那该怎么办?无需将其转换为双

试试这个:

TimeUnit.MILLISECONDS.toSeconds(((System.currentTimeMillis()); 
+1

我不知道该代码是否有任何优势彼得Lawrey的帖子,除了是更具可读性。 – rineez 2012-07-18 09:17:17

+2

@rineez:这就是我们所说的重用。为什么重做已经完成的事情? – Mohayemin 2012-07-18 09:24:23

+1

@Mohayemin我同意代码重用点。但请注意这种方法可能会导致精度损失。对于那些只需要四舍五入值的人来说,这种方法可能是完美的。 – rineez 2012-07-27 12:43:28

如果你需要对付双,你可以做这样的事情:

double myNum = 1.23213E9; 
String myString = NumberFormat.getInstance().format(myNum); 
System.out.print(myString);