4 回答

TA貢獻1786條經驗 獲得超11個贊
博士
java.time.Instant.now() // Capture the current moment in UTC.
在內部,該時刻被跟蹤為整秒計數加上納秒計數的小數秒數,因為紀元參考為 1970-01-01T00:00:00Z(均值 UTC)。Z
時間
你的類顯然來自喬達時間庫。該庫的創建者斯蒂芬·科爾伯恩繼續用Java 8及以后根據JASR 310內置的java.time類取代了Joda-Time。DateTime
Instant
在 UTC 中片刻,請使用 。要以 UTC 格式捕獲當前時刻,請 .Instant
Instant.now()
Instant
表示自 UTC 中 1970 年第一個時刻的紀元引用以來的納秒數。
調用是相同的,自 1970 年 UTC 開始以來的計數,除了更粗糙的毫秒分辨率而不是納秒。在實踐中,傳統的計算機時鐘無法以納秒為單位準確跟蹤當前時刻,因此捕獲當前時刻可能僅捕獲微秒(在Java 9及更高版本中典型)或毫秒(在Java 8中)。System.currentTimeMillis()
Instant
結果:沒有必要打電話給系統。
請改用。Instant.now()
ZonedDateTime
等效于 。此類表示通過特定區域(時區)的人們使用的掛鐘時間看到的時刻。DateTime
ZonedDateTime
ZoneId z = ZoneId.of( "Africa/Tunis" ) ; ZonedDateTime zdt = ZonedDateTime.now( z ) ;

TA貢獻1830條經驗 獲得超9個贊
是的。 會打電話new DateTime(System.currentTimeMillis())
public DateTime(long instant) {
super(instant);
}
然后
public BaseDateTime(long instant) {
this(instant, ISOChronology.getInstance());
}
并會打電話DateTime.now()
public static DateTime now() {
return new DateTime();
}
然后
public DateTime() {
super();
}
然后
public BaseDateTime() {
this(DateTimeUtils.currentTimeMillis(), ISOChronology.getInstance());
}
這與第一種方式相同。

TA貢獻1828條經驗 獲得超3個贊
是的。
這是相關的代碼:
public BaseDateTime() {
this(DateTimeUtils.currentTimeMillis(), ISOChronology.getInstance());
}
public BaseDateTime(long instant) {
this(instant, ISOChronology.getInstance());
}
添加回答
舉報