Проблема преобразования java.util.Date в org.joda.time.LocalDateTime - PullRequest
3 голосов
/ 24 мая 2011
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 голосов
/ 24 мая 2011

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

...