为什么以下行返回的 TimeZone 显示不正确的时间:
TimeZone.getTimeZone("America/Ottawa")
Run Code Online (Sandbox Code Playgroud)
现在显示为晚上 10:26 [亚特兰大时间现在是 6:26,Ottawash 应该也是下午 6:26]。
我认为它有两部分:大陆/城市,它应该返回正确的时间,我不正确吗?
正确的时区是America/Toronto. 这是安大略省最大的城市。
时区名称通常采用 Continent/City 的形式。对于加拿大和美国,时区使用州或省最大的城市。一些州以大陆/州/城市的形式拥有多个时区。对于大多数其他国家/地区,至少有一个时区使用最大的城市。具有多个时区的国家/地区通常使用每个时区中最大的城市。
编辑:您的时差的可能原因是如果找不到时区,代码默认为祖鲁时间。