如何在Java中使用UTC偏移获得特定时间?

时间:2016-12-13 12:05:57

标签: java datetime

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

我在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转换特定时间(我见过的唯一例子使用当前时间),所以我想知道是否有一个聪明的解决方案在那里,我很想念。

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

1 个答案:

答案 0 :(得分:0)

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

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

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