Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: Общие вопросы > Проблема с датой 01.04.1984 |
Автор: PHelen 17.7.2008, 17:26 | ||
Привет всем. Такая проблема в оракле в курсор явно прописываю дату to_date('01.04.1984', 'dd.mm.yyyy') далее в java вытаскиваю ее в resultSet и затем считываю в Timestamp :
в итоге l_dat = 1984-03-31 23:00:00.0 То есть ровно на час меньше чем для других дат При проверке на милисекундах это же расхождение Для других дат такого расхождения не нашел. Подскажите, может кто-нибудь сталкивался с чем-то подобным или знает с чем это связано? |
Автор: man_without_face 17.7.2008, 17:30 |
"1 апреля 1984 г. состоялась встреча журналистов газеты "Комсомольская правда"" - может это как-то связано? О_о |
Автор: Palladin 17.7.2008, 23:46 |
man_without_face, ![]() Однако не мои знания говорят мне что это невозможно, проверь мот где-то разница идет, хотя мои знания довольно скудны... |
Автор: PHelen 18.7.2008, 12:07 |
Вообщем, благодаря функции TimeZone.inDaylightTime Стало понятно, что потеря часа связана с переводом времени. Оказывается 4 года (1981, 1982, 1983, 1984) время в СССР переводили 1 апреля в 00.00 (переводили на час вперед). в результате пропадает время с 00.00 по 01.00 И если приходит дата (1 апреля перечисленных годов) со временем из этого интервала, то дата (getDate()) ,будет указана 31.03 и время от 23 до 23.59 Может кто-нибудь в курсе, в java придумали какой-нибудь способ для правильного разруливания данной ситуации? Вообщем пришлось сделать вилку. И для определенного времени четырех дат прибавлять час, чтобы получилось 01.04 01:00 Всем спасибо. |