我有這樣的輸入日期:
DateTime date = new DateTime("2022-10-30T00:00:00.000 11:00");
如何在保持相同時間的同時將其轉換為 UTC "2022-10-30 00:00:00.000"
:?
換句話說,我希望該date.getMillis();
方法以 UTC 格式回傳“2022-10-30”的午夜。
現在,如果我打電話date.getMillis();
,我會在 UTC 中得到“2020-10-29”。
uj5u.com熱心網友回復:
我不確定你在做你認為你在這里做的事情。
您創建的日期沒有 UTC 11 偏移量,它位于 JVM 的默認時區 ( demo ):
System.out.println(DateTimeZone.getDefault());
DateTime date = new DateTime("2022-10-30T00:00:00.000 11:00");
System.out.println(date);
印刷
Etc/UTC
2022-10-29T13:00:00.000Z
所以本地日期部分是2022-10-29
.
如果要使用指定的偏移量創建它,則必須使用DateTime.parse
:
DateTime date = DateTime.parse("2022-10-30T00:00:00.000 11:00");
或指定它:
DateTime date = new DateTime("2022-10-30T00:00:00.000 11:00", DateTimeZone.forOffsetHours(11));
列印這些結果中的任何一個:
2022-10-30T00:00:00.000 11:00
現在,date.withZoneRetainFields(DateTimeZone.UTC)
是:
2022-10-30T00:00:00.000Z
按要求。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/507675.html