我正在創建一個應用程序,它獲取日曆對象中某個人的本地日期和時間。我有以下信息:我可以使用州代碼,GMT偏移和日光保存信息在日曆對象中獲取本地日期和時間嗎?
國家代碼 GMT偏移 日光節約信息
任何形式的幫助實在是讚賞。
//我有
LocalDateTime gmtToLocal,gmtTime ;
gmtTime = LocalDateTime.now(ZoneId.of("UTC"));
gmtToLocal = gmtTime.plusHours(GMTOffset);
我正在創建一個應用程序,它獲取日曆對象中某個人的本地日期和時間。我有以下信息:我可以使用州代碼,GMT偏移和日光保存信息在日曆對象中獲取本地日期和時間嗎?
國家代碼 GMT偏移 日光節約信息
任何形式的幫助實在是讚賞。
//我有
LocalDateTime gmtToLocal,gmtTime ;
gmtTime = LocalDateTime.now(ZoneId.of("UTC"));
gmtToLocal = gmtTime.plusHours(GMTOffset);
您與現代java.time類(LocalDateTime
)混合的麻煩舊的遺留日期時類(Calendar
)提供給我的GMTOffset信息。 不要。獨佔地支持java.time類。
A LocalDateTime
沒有時區信息,這是它的目的。所以它不是而是代表時間軸上的一個時刻。這對於你的問題的目的是沒有用的。
你說你有一個給定的偏移距UTC。所以你想要一個OffsetDateTime
與ZoneOffset
。
Instant instant = Instant.now(); // Current moment in UTC.
ZoneOffset offset = ZoneOffset.ofHoursMinutes(5 , 30);
OffsetDateTime odt = OffsetDateTime.atOffset(offset);
作爲快捷方式,你可以跳過得到Instant
。
OffsetDateTime odt = OffsetDateTime.now(offset);
像夏令時這樣的異常不能通過僅從UTC來的偏移來處理。爲此,你需要一個時區。一個區域是一個偏移量加一組處理這些異常,過去和現在的規則。使用ZoneId
獲得ZonedDateTime
。搜索堆棧溢出的許多帖子。
我不知道在你的問題中「國家代碼」是什麼意思。如果你指的是一個國家內的州或省,而不是直接映射到所有情況下的時區,所以它是沒有用的。
請在發佈之前搜索並學習Stack Overflow。這些問題已經被多次討論過了。
你的問題是什麼,你的代碼在哪裏? –
@ScaryWombat更新了代碼片段。 – Priya