我有一些日期,格式为20Jan2013、08Aug2012等,它们各自属于特定的时区。例如,20Jan2013可能具有澳大利亚/墨尔本的时区ID,而08Aug2012可能具有欧洲/伦敦的ID。我的目标是根据这些时区和日期计算给定日期的UTC偏移量。到目前为止,我想到了以下解决方法:
DateTimeFormatter dtf = DateTimeFormat.forPattern("ZZ");
DateTimeFormatter dtf1 = DateTimeFormat.forPattern("ddMMMYYYY");
DateTimeZone zone = DateTimeZone.forID("Australia/Melbourne");
DateTime thisDate = dtf1.parseDateTime("30Jul2013");
System.out.println("\nZone: " + thisDate.withZone(zone));
这让我得到输出:
Zone: 2013-07-30T00:00:00.000+10:00
这是正确的,但我只想从中提取UTC偏移量,在这种情况下为+10:00。我已经寻找了一些方法,但找不到任何东西。有没有办法可以做到这一点?我唯一看到的选项是将输出转换为字符串并使用substring方法获取UTC偏移量。上述代码确实考虑了夏令时。例如,如果我有: DateTime thisDate = dtf1.parseDateTime("30Jan2013");
输出将是: 2013-01-30T00:00:00.000+11:00
(在末尾为+11:00而不是+10:00)
因此,基本上我需要做的就是找到一种从2013-07-30T00:00:00.000+11:00中提取+11:00的方法。请帮忙!