我正在尝试解析日期,当我在本地/BST 运行代码与巴黎/CEST 的服务器相比时,我得到了不同的结果。
我在以下示例中重现了该问题。这是试图解析澳大利亚大奖赛的开始日期。
TimeZone tz = TimeZone.getTimeZone("AET");
DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH mm");
dateFormat.setTimeZone(tz);
long time = dateFormat.parse("28/03/2010 17 00").getTime();
System.out.println("Time "+time);
似乎我在日期格式上正确设置了时区,当前时区不应该影响代码。但在本地,它打印 1269756000000,在巴黎打印 1269759600000。知道吗?
回答:
似乎我正在使用边缘案例进行测试:与 linux 服务器相比,我的 mac 上的时区定义不同。如果我将时区更改为:“America/Los_Angeles”,我将得到一致的结果。给我错误结果的 linux 机器正在运行可能已过时的 java 1.6.0-b105。我会尝试升级