或许有必要指出,虽然jodatime不支持三个字母的时区标识符(除了"UTC"),但是java.util.TimeZone; 并且您可以使用以下方法DateTimeZone从a 创建实例:TimeZoneDateTimeZone.forTimeZone
DateTimeZone.forTimeZone(TimeZone.getTimeZone("..."))
Run Code Online (Sandbox Code Playgroud)
但 TimeZone也不支持"EDT".来自Javadoc:
为了与JDK 1.1.x兼容,还支持其他一些三字母时区ID(例如"PST","CTT","AST").但是,它们的使用已被弃用......
注意"一些":在撰写本文时,PDT未列入TimeZone.getAvailableIDs()(至少在ideone.com上).如果您尝试在此处使用"PDT",您将最终获得GMT时区:
TimeZone.getTimeZone如果无法理解给定的ID,则[ 返回]指定的TimeZone或GMT区域.
因此,最好避免使用此方法,除非您可以保证只会尝试将其用于支持的时区标识符.