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

Java 获取时间戳并将其转换为字符串,java,Java,我用它来获取以秒为单位的当前时间戳,并将其添加到字符串Double.toString((System.currentTimeMillis()/1000)) 然而,我得到的不是十进制符号,而是“1.23213E9”。如何切换到十进制表示法 String.valueOf(System.currentTimeMillis() / 1000) 这样就行了?无需将其转换为双精度尝试以下操作: TimeUnit.MILLISECONDS.toSeconds(((System.currentTimeMill

我用它来获取以秒为单位的当前时间戳,并将其添加到字符串
Double.toString((System.currentTimeMillis()/1000))
然而,我得到的不是十进制符号,而是“1.23213E9”。如何切换到十进制表示法

String.valueOf(System.currentTimeMillis() / 1000)
这样就行了?无需将其转换为双精度

尝试以下操作:

TimeUnit.MILLISECONDS.toSeconds(((System.currentTimeMillis());
最短的是

String secs = "" + System.currentTimeMillis() / 1000;
如果要保留毫秒,可以使用

String secs = String.format("%.3f",  System.currentTimeMillis() / 1000.0);
产生一个类似字符串的

1342604140.503

如果你需要对付替身,你可以这样做:

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

如果您需要高精度,请将秒转换为
(double)System.currentTimeMillis()/1000
,并结合@DarioI发布的数字格式示例。我不确定此代码是否比Peter Lawrey的帖子更具可读性。@rineez:这就是我们所说的重用。为什么要重做已经做过的事情?@mohaymin我确实同意那里的代码重用点。但请注意,这种方法可能会降低精度。对于那些只需要四舍五入值的人来说,这种方法可能是完美的。@rineez当您表示该时间范围内的某个事物时,很可能希望使用秒,小数变得“不重要”。正如你不会说瑞典的长度是1572.232公里,你会说1572公里或1572232公里