У меня есть странные проблемы с Java григорианским календарем:Java GregorianCalendar Timezone
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:S Z");
sdf.setTimeZone(TimeZone.getTimeZone("US/Pacific"));
GregorianCalendar cal1 = new GregorianCalendar(TimeZone.getTimeZone("US/Pacific"));
cal1.setTimeInMillis(1320566400000L);
GregorianCalendar cal2 = new GregorianCalendar(TimeZone.getTimeZone("US/Pacific"));
cal2.setTimeInMillis(1320570000000L);
System.out.println(sdf.format(cal1.getTime()));
System.out.println(sdf.format(cal2.getTime()));
я выполнил выше приведенный код на машине с по умолчанию часового пояса = US Pacific, но машина работает в Германии.
В результате получается следующее:
2011-11-06 01:00:00:0 -0700
2011-11-06 01:00:00:0 -0800
Я действительно не понимаю, почему есть другой часовой пояс, в результате ... Я также проверил код на другом компьютере (по умолчанию Timezone = GMT) и он работает правильно.
У кого-нибудь есть идея, почему эта проблема возникает?
Бест, Майкл
В какой версии Java вы использовали? ;-) Иногда в одной версии есть ошибки, а не в других. – reporter
Я использую Java 1.6. – Michael