【问题标题】:How to get specific time using UTC offset in Java?如何在 Java 中使用 UTC 偏移量获取特定时间?
【发布时间】:2016-12-13 12:05:56
【问题描述】:

我正在编写一个依赖于时区的测试用例。对于这个问题,我需要一个将 UTC 偏移字符串作为参数的方法(例如“UTC-09:00”、“UTC+03:00”等),并返回 10:00(24 小时制)该偏移量中的时钟格式)相当于我自己的时区(欧洲/斯德哥尔摩)。类似于您在 Google 上搜索“瑞典时间中的芬兰时间上午 10:00”,它会返回上午 09:00。

我在 StackOverflow 上查找了许多与时区相关的查询,但它们似乎都不适用于我的问题。我能想到的唯一解决方案是使用“if else”语句,如下所示:

if(utcOffset == "UTC+02:00"){
    // use Java.time to convert 10:00 from UTC+02:00 time zone to UTC+01:00
} else if(utcOffset == "UTC+03:00"){
    // use Java.time to convert 10:00 from UTC+03:00 time zone to UTC+01:00
} // etc

这个解决方案似乎远非理想,我什至不确定如何使用 Java.time 来转换特定时间(我见过的唯一示例使用当前时间),所以我想知道是否有一个聪明的解决方案那里我不见了。

感谢任何帮助。如果我的问题中缺少任何重要信息,请告诉我,我很乐意澄清。

【问题讨论】:

标签: java datetime


【解决方案1】:

使用 OffsetDateTime 构建您的“10:00”(此处的示例:http://www.java2s.com/Tutorials/Java/java.time/OffsetDateTime/index.htm

对于时区部分,使用 ZonedDateTime(例如:UTC+1:00)。

你可以这样做offsetDateTime.adjustInto(zonedDateTime)

【讨论】:

猜你喜欢
  • 2016-01-06
  • 2012-10-30
  • 1970-01-01
  • 1970-01-01
  • 2018-10-18
  • 2021-06-11
  • 2011-07-26
  • 2012-07-13
  • 1970-01-01
相关资源
最近更新 更多