2016-12-02 30 views
0

我正在創建一個應用程序,它獲取日曆對象中某個人的本地日期和時間。我有以下信息:我可以使用州代碼,GMT偏移和日光保存信息在日曆對象中獲取本地日期和時間嗎?

國家代碼 GMT偏移 日光節約信息

任何形式的幫助實在是讚賞。

//我有

LocalDateTime gmtToLocal,gmtTime ; 
gmtTime = LocalDateTime.now(ZoneId.of("UTC")); 
gmtToLocal = gmtTime.plusHours(GMTOffset); 
+0

你的問題是什麼,你的代碼在哪裏? –

+0

@ScaryWombat更新了代碼片段。 – Priya

回答

0

您與現代java.time類(LocalDateTime)混合的麻煩舊的遺留日期時類(Calendar)提供給我的GMTOffset信息。 不要。獨佔地支持java.time類。

A LocalDateTime沒有時區信息,這是它的目的。所以它不是而是代表時間軸上的一個時刻。這對於你的問題的目的是沒有用的。

你說你有一個給定的偏移距UTC。所以你想要一個OffsetDateTimeZoneOffset

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。這些問題已經被多次討論過了。

相關問題