如何將 Java 打印Instant為帶有小數秒的時間戳,例如 1558766955.037 ?如示例所示,所需的精度為 1/1000。我試過(double) timestamp.getEpochSecond() + (double) timestamp.getNano() / 1000_000_000了,但是當我將它轉換為字符串并打印時,它顯示了1.558766955037E9。
3 回答

達令說
TA貢獻1821條經驗 獲得超6個贊
您看到的結果是您想要獲得的結果的科學 (e-) 符號。換句話說,你有正確的結果,你只需要在打印時正確格式化它:
Instant timestamp = Instant.now();
double d = (double) timestamp.getEpochSecond() + (double) timestamp.getNano() / 1000_000_000;
System.out.printf("%.2f", d);

慕森卡
TA貢獻1806條經驗 獲得超8個贊
正如其他人指出的那樣,這是格式問題。對于您的特定格式,您可以使用Formatter支持Locale點分隔分數的格式:
Instant now = Instant.now();
double val = (double) now.getEpochSecond() + (double) now.getNano() / 1000_000_000;
String value = new Formatter(Locale.US)
.format("%.3f", val)
.toString();
System.out.print(value);
印刷 :
1558768149.514
添加回答
舉報
0/150
提交
取消