我的格式为“2019-04-25T16:34:28-05:00”。我用joda-time解析了字符串“yyyy-MM-dd'T'HH:mm:ssZ”。
DateTimeFormatter df = DateTimeFormat.forPattern(formatStr);
DateTime temp = df.parseDateTime(dateStr);
它在DateTime中输出为“2019-04-25T15:34:28.000-06:00”。
直到这一切似乎都正确,但我想要输出TimeZone文本,如“04-25-2019 03:34 PM CDT”。
我通过以下方式格式化DateTime对象:
DateTimeFormatter format = DateTimeFormat.forPattern("MM-dd-yyyy
hh:mm a z");
但我得到-06:00的输出仍为“04-25-2019 03:34 PM -06:00”。
如何获取像“CDT”这样的时区名称来代替偏移?
如何获取像“CDT”这样的时区名称来代替偏移?
你不能。 -05:00
可能是CDT
,但它也可以适用于大量其他时区。例如,美国的EST
,或者巴西的ACT
或秘鲁的PET
,或许多其他......
即使您要将此问题限制在美国时区,请考虑MST
和PDT
都是UTC-7,尽管MST
全年适用于亚利桑那州的大部分地区,而PDT
仅适用于太平洋时区的夏令时。如果你在夏天给你一个-07:00
偏移量的时间戳,就不可能知道它属于哪个,甚至限制在美国。
换句话说,为了知道要使用哪个缩写,您必须提供时区标识符(例如America/Los_Angeles
),而不仅仅是偏移量。
另请参阅the timezone tag wiki中的“时区!=偏移”。