我想得到一個沒有時間的約會,但總是失敗。下面是我的代碼: long curLong = System.currentTimeMillis(); curLong = curLong - curLong % TimeUnit.DAYS.toMillis(1); Date date = new Date(curLong); System.out.println("date = " + date);輸出:date = Mon Oct 28 08:00:00 CST 2019有人知道為什么嗎?謝謝
4 回答
手掌心
TA貢獻1942條經驗 獲得超3個贊
不建議java.util.Date再使用了。它被調用Date,但不一定只包含日期信息,還包含有關時間的信息。
用這個:
LocalDate today = LocalDate.now();
并將其打印為
System.out.println(today.format(DateTimeFormatter.ISO_DATE);
使用 ISO 日期格式。您可以使用定義自己的格式模式
DateTimeFormatter.ofPattern("dd.MM.yyyy");例如。
繁花不似錦
TA貢獻1851條經驗 獲得超4個贊
java.util.Date的 javadoc 指出:
該類
Date表示特定的時刻,精度為毫秒。
這就是為什么你和時間有約會
如果你想要一個日期,你可以使用:java.time.LocalDate.now()(Java 8+)
慕妹3146593
TA貢獻1820條經驗 獲得超9個贊
首先,停止使用舊的java.util.Date.?新的 Java 8 日期和時間 API 為所有日期和時間操作提供了更好的類。
該類LocalDate完全按照您的要求進行。當前日期可以通過 獲取LocalDate.now()。
它還具有許多功能來添加和減去天、月等,并且它會考慮到您的所有日歷特殊情況。
慕運維8079593
TA貢獻1876條經驗 獲得超5個贊
您可以用來java.time.LocalDate.now()獲取日期。
不管怎樣,你的情況并沒有像你預期的那樣工作,因為你沒有做任何事情來刪除日期中的時間:你只是“壓制”它,這就是為什么它為零。如果你想繼續這種方式,你可以隨時substring這樣做(Date.toString()當然我的意思是子串)。
希望我有所幫助。
添加回答
舉報
0/150
提交
取消
