验证Java中的时区并抛出异常

use*_*643 1 java timezone jodatime

joda.time中是否有任何函数验证字符串是否表示正确的时区,如果格式不正确则抛出异常?

我知道TimeZone.getAvalibaleIDs(),但只是想知道是否有任何预定义的功能.

Jon*_*eet 6

DateTimeZone.forID() 如果无法识别ID,则会抛出异常.

如果您正在尝试获取实际区域,这是合适的 - 如果您只是想验证ID是否有效,我会使用getAvailableIDs():

boolean valid = DateTimeZone.getAvailableIDs().contains(id);
Run Code Online (Sandbox Code Playgroud)

在避免使用流量控制异常(IMO)方面,这更好.但是,它们并不等效 - 固定偏移时区ID有效DateTimeZone.forID(),但可能不包含在可用ID集中.