將IST轉換爲GMT時,我遇到了一個奇怪的問題。除了下午5點半和6點半以外,轉換工作將全天候正常進行。在此期間,而不是將時間轉換爲12:00:00,它將轉換爲00:00:00在Java中將IST轉換爲GMT時的問題
回答
好的,所以我猜測IST意味着印度標準時間;即GMT + 5:30。
5:30 pm因此IST將是12點GMT格林威治標準時間12:00:00,使用傳統的24小時制。 (或者他們用來稱呼它的「鐵路時間」。)
沒有任何進一步的輸入,我最好的猜測是你的時間處理代碼有一些錯誤(例如輸入時間不是什麼你認爲它是),或者區域設置有些奇怪的現象會影響時間顯示的方式。
我在這個答案中使用24小時保持清楚。
你確定你從17:30 IST轉換?如果你實際上是在05:30(即上午五點三十分)轉換格林尼治標準時間午夜。在24小時內午夜是00:00,所以這些都會加起來。
但是,這並不能解釋從06:30開始的轉換,而這將是格林威治時間01:30。
TL;博士
ZonedDateTime.of(2017 , 1 , 23 , 17 , 30 , 0 , 0 , ZoneId.of("Asia/Kolkata"))
.toInstant()
2017-01-23T12:00:00Z
沒有足夠的信息
不可能精確回答這個問題,沒有看到有問題的代碼。但是我可以使用java.time類向您展示正確的現代代碼。
使用java.time
通過「IST」你的意思是印度標準時間,愛爾蘭標準時間,或伊朗標準時間?給出示例數據,我猜。
在continent/region
的格式指定一個proper time zone name,如America/Montreal
,Africa/Casablanca
,或Pacific/Auckland
。切勿使用3-4字母縮寫,如EST
或IST
,因爲它們是而不是真正的時區,不是標準化的,甚至不是唯一的(!)。
ZoneId z = ZoneId.of("Asia/Kolkata");
LocalDate localDate = LocalDate.of(2017 , 1 , 23);
LocalTime localTime = LocalTime.of(17 , 30); // 5:30 PM.
ZonedDateTime zdt = ZonedDateTime.of(localDate , localTime , z);
要通過UTC的透鏡觀看相同的時刻,提取Instant
。 Instant
類表示UTC中時間軸上的一個時刻,分辨率爲nanoseconds(小數點後最多九(9)位數字)。
Instant instant = zdt.toInstant();
看到這個code run live at IdeOne.com。
在這個日期,印度的時間比UTC早5個半小時。因此,將下午加爾各答下午5點30分調整爲UTC意味着減去5小時30分鐘,這將我們帶回到UTC的中午。所以你在結果中看到。
zdt.toString():2017-01-23T17:30 + 05:30 [亞/加爾各答]
instant.toString():2017-01-23T12:00:00Z
關於java.time
的java.time框架是建立在Java 8和更高版本。這些類取代了日期時間類legacy,如java.util.Date
,Calendar
,& SimpleDateFormat
。
Joda-Time項目現在位於maintenance mode,建議遷移到java.time類。請參閱Oracle Tutorial。並搜索堆棧溢出了很多例子和解釋。規格是JSR 310。
從何處獲取java.time類?
- Java SE 8和SE 9後來
- 內置。
- 帶捆綁實現的標準Java API的一部分。
- Java 9增加了一些次要功能和修復。在ThreeTen-Backport
- Java SE 6和SE 7
- 大部分的java.time功能後移植到Java 6 & 7。
- Android
- 的ThreeTenABP項目適應ThreeTen-反向移植(上述)爲Android特異性。
- 參見How to use ThreeTenABP…。
的ThreeTen-Extra項目與其他類擴展java.time。這個項目是未來可能增加java.time的一個試驗場。您可以在這裏找到一些有用的類,如Interval
,YearWeek
,YearQuarter
和more。
- 1. PHP將GMT轉換爲IST
- 2. 在iOS中將GMT轉換爲IST
- 3. 如何將ISO時間轉換爲android中的IST和GMT?
- 4. 想要將GMT日期時間轉換爲IST日期時間
- 5. 如何將此時間(GMT格式)轉換爲IST時間?
- 6. 在Android中以格式轉換GMT到IST時區
- 7. 將UTC時間轉換爲IST時間
- 8. Java日曆時區轉換爲GMT問題
- 9. 轉換IST到PST在Java
- 10. 將GMT從GMT轉換爲UTC
- 11. 將GMT從GMT轉換爲EST
- 12. 如何在C(Ubuntu)中將IST時間轉換爲UTC時間?
- 13. 使用java腳本將時區從EST轉換爲IST
- 14. 將GMT時間轉換爲本地
- 15. 將NSDate轉換爲GMT時區
- 16. 將GMT時代轉換爲CST
- 17. 將facebook時間轉換爲GMT格式?
- 18. 如何將SQL Server時間轉換爲SQL中的IST時間?
- 19. 考慮到java中的夏令時,將IST轉換爲美國時區
- 20. 如何在SQL中將時間轉換爲IST?
- 21. 在Python中將當地時間轉換爲GMT時間
- 22. 在Groovy/Java中將UTC日期轉換爲GMT
- 23. 使用C#將GMT日期轉換爲本地時間時出現問題?
- 24. 如何將GMT時間自動轉換爲本地時間(MDT或MST)如何將GMT時間轉換爲XSLT
- 25. 在sql server中將時區的datetime轉換爲GMT
- 26. 將字符串轉換爲GMT時區日期。 JAVA
- 27. 在IST中轉換UTC時間
- 28. IST到EST在Java中的時間轉換
- 29. 將GMT時間轉換爲python中的當地時間
- 30. EDT爲GMT轉換
請向我們展示您使用的代碼。 –
@Pablo 12:00 PM是正午,00:00是午夜。 – Rich