Проблема преобразования java.утиль.Дата до орг.Джода.время.LocalDateTime


import org.joda.time.LocalDateTime;
import java.util.Date;

С этой датой или со следующими все в порядке:

  • new LocalDateTime(new Date(0,0,1,2,30)) - 1900-01-01T02: 30: 00.000
  • new LocalDateTime(new Date(111,4,24,19,51)) - 2011-05-24T19: 51: 00.000
Но есть что-то непонятное с предшествующими датами:
  • new LocalDateTime(new Date(0,0,1,2,29,50)) - 1900-01-01T01: 59: 50.000
  • new LocalDateTime(new Date(0,0,1)) - 1899-12-31T23: 30: 00.000
  • new LocalDateTime(new Date(-50,0,1)) - 1849-12-31T23: 30: 20.000
  • new LocalDateTime(new Date(-116,6,4)) - 1784-07-03T23: 30: 20.000

Кто знает, что это такое и как предотвратить эта проблема?

1 3

1 ответ:

Какой часовой пояс вы используете? Похоже, что вы имеете дело с разрывом часов, возможно, около 2 часов ночи 1 января 1900 года. Это означает, что определенное количество времени было пропущено местными часами и официально не существует. Это также может быть изменение в ДСТ. Последовательная разница в ваших последних 3 строках выглядит странно, хотя-возможно, календарь Java и время Joda используют другую версию базы данных часовых поясов, и изменение отсутствует в одном из них . их.

Вы можете проверить свой часовой пояс на предмет изменений на связанном сайте.