Я пытаюсь разобрать дату и получаю разные результаты, когда я запускаю код локально / 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. Есть идеи?
Ответ:
Кажется, что я тестировал с крайним случаем: определение часового пояса на моем Mac отличается от сравнения с сервером linux. Если я изменю часовой пояс на «America / Los_Angeles», я получу постоянный результат. Ящик Linux, который дает мне неправильный результат, работает на Java 1.6.0-b105, который может быть устаревшим. Попробую апгрейд