Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Проблема с датой 01.04.1984


Автор: PHelen 17.7.2008, 17:26
Привет всем.
Такая проблема
в оракле в курсор явно прописываю дату  to_date('01.04.1984', 'dd.mm.yyyy')
далее в java вытаскиваю ее в resultSet
и затем считываю в Timestamp :

Код

  Timestamp l_dat = resultSet.getTimestamp( counter ); 


в итоге 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,  smile 

Однако не мои знания говорят мне что это невозможно, проверь мот где-то разница идет, хотя мои знания довольно скудны...

Автор: Kangaroo 18.7.2008, 11:10
Цитата(PHelen @  17.7.2008,  17:26 Найти цитируемый пост)
Подскажите, может кто-нибудь сталкивался с чем-то подобным или знает с чем это связано?

Похоже на проблемы с таймзонами.. 

man_without_face
Palladin
флудеры  smile 

Автор: 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

Всем спасибо. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)