Java时区ID区分大小写或与平台相关

时间:2015-11-16 18:14:06

标签: java timezone

在我的Mac上,以下代码正常工作并返回太平洋时区

TimeZone pacificTime = TimeZone.getTimeZone("america/los_angeles");

但是在我的ubuntu机器上,Java无法解析它,变量pacificTime返回GMT时区。有人可以解释为什么会这样吗?

1 个答案:

答案 0 :(得分:1)

我的假设是Ubuntu计算机运行Java 8,而mac运行Java 7

代码适用于您的mac,因为Java 7中的方法不区分大小写,而Java 8中的方法 。因此,您的Ubuntu计算机上的时区无法识别,并且该方法会返回默认时区,即GMT

为了在Ubuntu上获得正确的时区,请使用时区的正确名称,该名称以大写字母开头:

TimeZone pacificTime = TimeZone.getTimeZone("America/Los_Angeles");