JodaTime格式错误的时区

时间:2012-06-07 20:35:14

标签: java datetime date jodatime

我有以下使用Joda时间的代码段:

import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;

DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern("HH z")
String dateTime = dateTimeFormatter.print(new DateTime())
println DateTime.parse(dateTime, dateTimeFormatter)

但它会抛出IllegalArgumentException:

Invalid format: "16 EDT" is malformed at "EDT"

我想念什么?

编辑:适用于DateTimeFormat.forPattern("HH")

2 个答案:

答案 0 :(得分:3)

根据DateTimeFormat javadoc,无法解析时区名称('z')。

修改 为了解析时区,我将研究使用'Z'和实际时区偏移(例如东部的-0500)。您还可以查看DateTimeFormatter中的withOffsetParsed()方法 - 例如。 dateTimeFormatter.withOffsetParsed().parseDateTime("16 -0500");

答案 1 :(得分:0)

问题是EDT不是有效的唯一时区名称。解析器在这方面非常严格。 EDT可以向美国或澳大利亚申请。