如何判断JodaTime时区是否已明确设置?

时间:2016-04-26 19:06:08

标签: java parsing datetime timezone jodatime

DateTime对象中编码时区信息非常简单:

final DateTimeFormatter formatterWithZone = DateTimeFormat.forPattern("MMMM dd, yyyy, HH:mm ZZZ").withOffsetParsed();
final DateTimeFormatter formatterWithoutZone = DateTimeFormat.forPattern("MMMM dd, yyyy, HH:mm");

final DateTime dateTimeExplicitZone = formatterWithZone.parseDateTime("April 26, 2016, 11:11 PST8PDT");
final DateTime dateTimeImplicitZone = formatterWithoutZone.parseDateTime("April 26, 2016, 11:11");

System.out.println(dateTimeExplicitZone);
System.out.println(dateTimeExplicitZone.getZone());

System.out.println(dateTimeImplicitZone);
System.out.println(dateTimeImplicitZone.getZone());

// 2016-04-26T11:11:00.000-07:00
// PST8PDT
// 2016-04-26T11:11:00.000-04:00
// America/New_York

但是,我希望能够判断时区是否明确地在下游进行了解析。

例如,如果解析没有时区,我想采取特定的措施来确保通过其他方式手动设置时区。

我的解决方法是创建两个解析器:一个用于带时区的格式字符串,另一个用于没有字符串的字符串,但这有点不太优雅。

如果时区通过解析或方法调用显式设置,而不是从JVM本地时间推断出来,是否有办法告诉使用JodaTime API?

0 个答案:

没有答案