我有以下使用 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")
最佳答案
根据DateTimeFormat javadoc , 时区名称 ('z') 无法解析。
编辑:
要解析时区,我会考虑使用“Z”和实际时区偏移量(例如 -0500 表示东部)。您可能还想查看 DateTimeFormatter 中的 withOffsetParsed()
方法——例如。 dateTimeFormatter.withOffsetParsed().parseDateTime("16 -0500");
。
关于java - JodaTime 中格式错误的时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10939471/