【发布时间】:2014-05-19 22:46:27
【问题描述】:
这是我的场景:我想解析用户给我的时间戳。如果时间戳没有时区信息,我想假设时间戳在用户的时区中,如果时间戳确实定义了它的时区,请使用它。
以下是让它变得困难的部分:
- 我无法设置 DateTimeZone.setDefault(UserTimeZone) 因为这会影响服务器上的所有用户,如下所示:Switch Timezone for calculation。
- 我不能使用 withOffsetParsed(),因为它没有告诉我用户是否明确设置了时区,或者它回退到默认值。
- 我不能使用 withZone(),因为它会覆盖字符串中的任何时区信息。
我想要的是这样的:
DateTimeFormatter parser = ISODateTimeFormat.dateTimeParser()
DateTimeZone userTimeZone = getUserTimeZone(); //assume -04:00
//returns 2014-05-17T15:36:14+02:00
parser.parseDateTime("2014-05-17T15:36:14+02:00", userTimeZone);
//returns 2014-05-17T15:36:14-04:00
parser.hasTimeZone("2014-05-17T15:36:14", userTimeZone);
有什么简单的方法吗?
【问题讨论】:
-
不,与TZ打交道是A的痛苦
标签: java time timezone jodatime