嗨我有一个表格,我从中得到一个日期,如“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