Java时区ID区分大小写或依赖于平台



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

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

然而,在我的ubuntu机器上,Java无法解析它,变量pacificTime返回GMT时区。有人能解释为什么会发生这种情况吗?

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

该代码适用于mac,因为Java 7中的方法不区分大小写,而Java 8中的方法。因此,Ubuntu机器上的时区根本无法识别,该方法返回默认时区GMT

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

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

相关内容

  • 没有找到相关文章

最新更新