为什么以下行返回的TimeZone显示错误的时间:
TimeZone.getTimeZone("America/Ottawa")
现在显示10:26 PM [亚特兰大时间现在是6:26,Ottawashould也应该是下午6:26]。
我认为它有两个部分:大陆/城市,它应该返回正确的时间,我不正确吗?
答案 0 :(得分:3)
正确的时区是America/Toronto
。这是安大略省最大的城市。
时区名称通常采用Continent / City格式。对于加拿大和美国,时区使用州或省的最大城市。一些州在大陆/州/市中有多个时区。对于大多数其他国家而言,至少有一个时区使用最大的城市。具有多个时区的国家通常使用每个时区中最大的城市。
编辑:你的时差的可能原因是,如果找不到时区,代码默认为祖鲁时间。
答案 1 :(得分:0)
你从哪里得到America/Ottawa
?你不能随便选择城市。如果Java使用与其他人相同的time zone database,America/Toronto
应该有效。
更新:切换America/New_York
以获得更合适的America/Toronto
。