Java 使用joda time解析包含时区的日期字符串

Java 使用joda time解析包含时区的日期字符串,java,jodatime,Java,Jodatime,我正在尝试使用joda time解析日期字符串,不幸的是,我找不到解析时区的方法 以下是我的最新尝试: String s=“2013-09-20 13:23:50等/GMT”; DateTimeFormat.forPattern(“yyyy-MM-dd HH:MM:ss ZZZ”).parseDateTime 导致 我的模式中的错误在哪里?您应该使用版本为2.0或更高版本的Joda Time库。 此功能是在版本2中添加的 参见1.6->2.0 允许格式模式中的“Z”和“ZZ”将“Z”解析为

我正在尝试使用joda time解析日期字符串,不幸的是,我找不到解析时区的方法

以下是我的最新尝试:

String s=“2013-09-20 13:23:50等/GMT”;
DateTimeFormat.forPattern(“yyyy-MM-dd HH:MM:ss ZZZ”).parseDateTime
导致


我的模式中的错误在哪里?

您应该使用版本为
2.0
或更高版本的
Joda Time
库。
此功能是在版本
2
中添加的
参见1.6->2.0

  • 允许格式模式中的“Z”和“ZZ”将“Z”解析为“+00:00”[2827359]

  • 支持解析日期时区ID,如欧洲/伦敦

  • 支持解析日期时区名称,如“EST”和“British Summer time”。这些名称不是唯一的,因此新的API方法将继续使用 生成器要求您传入一个地图,其中列出您要输入的所有名称 希望能够解析。现有的方法是不变的,不会改变 不允许解析


您应该使用版本为
2.0
或更高版本的
Joda Time
库。
此功能是在版本
2
中添加的
参见1.6->2.0

  • 允许格式模式中的“Z”和“ZZ”将“Z”解析为“+00:00”[2827359]

  • 支持解析日期时区ID,如欧洲/伦敦

  • 支持解析日期时区名称,如“EST”和“British Summer time”。这些名称不是唯一的,因此新的API方法将继续使用 生成器要求您传入一个地图,其中列出您要输入的所有名称 希望能够解析。现有的方法是不变的,不会改变 不允许解析


要解析带有时区的datetime字符串,可以对[Java]使用next:

new DateTimeFormatterBuilder()
      // z is timezone name
      .appendPattern("yyyy-MM-dd HH:mm:ss z") 
      // special map to map names to time zones
      .appendTimeZoneName(new HashMap() {{
          put("UTC", DateTimeZone.UTC);
      }}) 
      .toParser
或[斯卡拉]

new DateTimeFormatterBuilder()
      .appendPattern("yyyy-MM-dd HH:mm:ss z")
      .appendTimeZoneName(Map("UTC" -> DateTimeZone.UTC))
      .toParser

要解析带有时区的datetime字符串,可以对[Java]使用next:

new DateTimeFormatterBuilder()
      // z is timezone name
      .appendPattern("yyyy-MM-dd HH:mm:ss z") 
      // special map to map names to time zones
      .appendTimeZoneName(new HashMap() {{
          put("UTC", DateTimeZone.UTC);
      }}) 
      .toParser
或[斯卡拉]

new DateTimeFormatterBuilder()
      .appendPattern("yyyy-MM-dd HH:mm:ss z")
      .appendTimeZoneName(Map("UTC" -> DateTimeZone.UTC))
      .toParser

哪个时区是
Etc/GMT
?我知道
GMT
但是什么是
Etc
?你用的是哪种版本的
joda time
?我尝试了您的示例(版本2.3),它正在成功执行@Aarondigula这是一个Posix的东西也可以在这里看到@Aarondigula它在文档@mabbas中我使用的是2.1哪个时区是
Etc/GMT
?我知道
GMT
但是什么是
Etc
?你用的是哪种版本的
joda time
?我尝试了您的示例(版本2.3),它正在成功执行@Aarondigula这是一个Posix的东西,也可以在这里看到@Aarondigula它在文档@mabbas中,我正在使用2.1。我原来的问题是一个令人讨厌的类路径问题,导致使用了joda time的旧版本。感谢Ilya给我的提示,它为我指出了正确的解决方案。原来我原来的问题是一个令人讨厌的类路径问题,导致使用了joda time的旧版本。感谢Ilya给我的提示,让我找到了正确的解决方案。