我想得到一個沒有時間的約會,但總是失敗。下面是我的代碼: 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
提交
取消