嗨我有一個表格,我從中得到一個日期,如「2017-03-24 06:01:33」這是UTC。在我的Java程序中,我必須以字符串的形式接收它。如何使用客戶端的偏移小時和分鐘將其轉換爲本地日期字符串?UTC到當地日期轉換
回答
我會做:
OffsetDateTime odt = LocalDateTime.parse(dateFromDb, DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss"))
.atOffset(ZoneOffset.UTC);
String localDateString = odt.atZoneSameInstant(ZoneOffset.ofHoursMinutes(5, 30))
.toLocalDateTime()
.toString();
我假設你已經得到了客戶的時區作爲一個以小時和分鐘偏移。然後你可以從ZoneOffset.ofHoursMinutes()
傳入。請注意,如果客戶時區使用夏季時間(夏令時),一年中的某些時間(如美國大部分地區),則需要確保您獲得日期所在的時間的抵消。指定客戶端時區的其他方式是ZoneId.systemDefault()
或ZoneId.of("Asia/Kolkata")
- 這樣就知道夏令時規則,因此可能更安全。
代碼打印:
2017-03-24T11:31:33
你注意到它的前面輸入字符串的五個半小時的預期。
如果你只需要日期,而不是時間,使用toLocalDate()
代替toLocalDateTime()
。
所有上述需要Java 8.或Java 8日期和時間類到Java 6和7的反向移植,見ThreeTen Backport。如果你不能使用Java 8並且不想依靠backport,請在this question: Not able to parse UTC date time to EST local time找到你的靈感。
使用此
simpleDateFormat.setTimeZone("Your-Client's-Timezone");
如何使用它?我應該在哪裏傳遞我的UTC字符串「2017-03-24 06:01:33」以及如何獲取格式爲「yyyy-mm-dd」的本地字符串? @Sandeep – Virat
@Sandesha,你有沒有在Javadocs中檢查SimpleDateFormat? –
在我的愚見中,當提問者可以在Java 8中使用更多程序員友好的日期和時間類時,您不應該建議像'SimpleDateFormat'這樣的過時/過時的類。 –
- 1. UTC轉換爲當地日期時間
- 2. UTC日期到當地日期在swift
- 3. 轉換UTC日期
- 4. 轉換時刻UTC到當地日期時間
- 5. 本地到UTC UTC轉換
- 6. JavaScript的UTC日期轉換
- 7. PHP - 將日期轉換爲UTC日期
- 8. Javascript:如何將UTC日期轉換爲本地日期?
- 9. 如何將UTC日期轉換爲本地日期對象?
- 10. 轉換UTC中的Epoch到當前時區日期
- 11. UTC字符串日期到當地日期
- 12. UTC datetime到設備本地日期時間轉換在android
- 13. 從本地時區到UTC然後到本地的轉換日期
- 14. 如何將UTC日期轉換爲NSDate?
- 15. 轉換日期爲UTC與+00
- 16. 轉換UTC日期,以其它時區
- 17. UTC/ISO 8601格式的日期轉換
- 18. 的Javascript:轉換日期爲UTC格式
- 19. 我的日期被轉換爲UTC?
- 20. 將UTC轉換爲當地時間Javascript
- 21. 將當地時間轉換爲utc
- 22. 將動作日期從UTC轉換爲當地時間,時間爲毫秒
- 23. SQLAlchemy的保存之前轉換UTC日期時間爲當地時間
- 24. 將表示當地時間的字符串轉換爲UTC日期
- 25. 如何將當地時間的日期轉換爲Swift中的UTC?
- 26. 從服務器轉換UTC日期爲本地時間
- 27. 如何將GMT(UTC)datetime轉換爲本地日期時間?
- 28. 如何UTC日期字符串轉換爲本地時間(systemTimeZone)
- 29. 將本地日期時間轉換爲UTC時間在php
- 30. 如何將UTC日期轉換爲地區GMT時間android
http://stackoverflow.com/questions/31395441/convert-utc-date-to-local-date – soorapadman