Я пытаюсь использовать System.out из тех же строк
System.out.println(" DATE 29 " + new Date(1330462800000l) + " Date 01 "
+ new Date(1330549200000l));
, но у меня разные результаты, когда я проверяю его в Build (работает в режиме консоли) и когда я запускаю приложение из eclipse.
вывод из затмения (кажется, что это правильный результат):
ДАТА 29 Ср 29 февраля 00:00:00 EET 2012 Дата 01 Чт 01 01 00:00:00 EET 2012
вывод из сборки (режим консоли)
ДАТА 29 Вторник 28 февраля 23:00:00 EET 2012 Дата 01 Ср 29 февраля 23:00:00 EET 2012
Извините за глупый вопрос, но есть ли у вас какие-либо идеи о возможных причинах?
PS: я использую maven + tycho, чтобы создать сборку eclipse-repository типа упаковки (если это действительно имеет значение)
РЕДАКТИРОВАТЬ: В Eclipse я посмотрел на значение timeZone:
Calendar calendar=Calendar.getInstance();
System.out.println("!!!time zone before: " + calendar.getTimeZone());
!!! часовой пояс до: sun.util.calendar.ZoneInfo [id = "Европа / Минск", смещение = 7200000, dstSavings = 3600000, useDaylight = верно, переходы = 121, lastRule = java.util.SimpleTimeZone [ID = Европа / Минск, смещение = 7200000, dstSavings = 3600000, useDaylight = Truе, StartYear = 0, StartMode = 2, StartMonth = 2, startDay = -1, startDayOfWeek = 1, = 7200000 начальный промежуток, startTimeMode = 1, endMode = 2, endMonth = 9, endDay = -1, endDayOfWeek = 1, EndTime =7200000, endTimeMode = 1]]
, затем я установил часовой пояс с жестко закодированным zoneId и сделал сборку
calendar.setTimeZone(TimeZone.getTimeZone("Europe/Minsk"));
не дал никаких результатов
РЕДАКТИРОВАТЬ: я используюразные версии и архитектуры jres в build и eclipse .. Может ли это быть причиной?РЕДАКТИРОВАТЬ:
System.out.println("!!!!!! system.timezone " + System.getProperty("user.timezone"));
System.setProperty("user.timezone", "Europe/Minsk");
System.out.println("!!!!!! system.timezone " + System.getProperty("user.timezone"));
!!!!!!system.timezone Европа / Минск
!!!!!!system.timezone Европа / Минск !!! календарное время после зоны: sun.util.calendar.ZoneInfo [id = "Европа / Минск", смещение = 7200000, dstSavings = 3600000, useDaylight = true, переходы = 121, lastRule = java.util.SimpleTimeZone [ID = Европа / Минск, смещение = 7200000, dstSavings = 3600000, useDaylight = верно, StartYear = 0, StartMode = 2, StartMonth = 2, startDay = -1, startDayOfWeek = 1, = 7200000 начальный промежуток, startTimeMode = 1, endMode = 2, endMonth = 9, endDay = -1, endDayOfWeek = 1, endTime = 7200000, endTimeMode = 1]]
Правильный часовой пояс.но дата все еще неверна