嗨我有一個表格,我從中得到一個日期,如「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轉換爲當地日期時間
- 3. UTC日期到當地日期在swift
- 4. 將當地日期時間轉換爲UTC日期時間
- 5. 轉換UTC日期時間當地日期時間
- 6. 將UTC日期時間轉換爲當地日期時間
- 7. 轉換時刻UTC到當地日期時間
- 8. utc和本地日期時間轉換
- 9. 本地到UTC UTC轉換
- 10. sql UTC日期轉換
- 11. JavaScript的UTC日期轉換
- 12. 轉換UTC日期爲NSString
- 13. 轉換AX 2012 UTC日期
- 14. 轉換UK日期UTC
- 15. 轉換的NSString日期UTC日期
- 16. 將UTC日期秒轉換爲日期
- 17. PHP - 將日期轉換爲UTC日期
- 18. 貓鼬將存儲的UTC日期轉換爲當地時間?
- 19. 從UTC到CET的轉換日期
- 20. 轉換日期時間到UTC
- 21. 如何將UTC日期轉換爲本地日期對象?
- 22. Javascript:如何將UTC日期轉換爲本地日期?
- 23. 轉換UTC中的Epoch到當前時區日期
- 24. UTC字符串日期到當地日期
- 25. 日期時間轉換從UTC到本地兩次
- 26. Javascript從UTC轉換到本地日期時間
- 27. UTC datetime到設備本地日期時間轉換在android
- 28. 的Java轉換GMT/UTC到當地時間預期
- 29. 轉換UTC日期字符串到本地日期字符串inspecific格式
- 30. 從UTC日期時間轉換到視圖中的本地日期時間
http://stackoverflow.com/questions/31395441/convert-utc-date-to-local-date – soorapadman