亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

帶有小數秒的 Java 時間戳

帶有小數秒的 Java 時間戳

一只甜甜圈 2022-12-15 16:12:49
如何將 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);


查看完整回答
反對 回復 2022-12-15
?
慕森卡

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


查看完整回答
反對 回復 2022-12-15
?
慕田峪9158850

TA貢獻1794條經驗 獲得超7個贊

System.out.printf("%.3f", instant.toEpochMilli() / 1000.0)應該管用。



查看完整回答
反對 回復 2022-12-15
  • 3 回答
  • 0 關注
  • 294 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號