Я пытаюсь создать фиксированное время с использованием joda DateTime, неожиданно разные результаты производятся на основе времени выполнения кода (текущее системное время). Вот кодDateTime API дает отличный результат в зависимости от времени выполнения кода
DateTimeZone.setDefault(DateTimeZone.forID("Europe/Brussels"));
DateTime t1 = new DateTime().withDate(2012, OCTOBER, 28).withTime(2, 0, 0, 50);
//Note that 2012, OCTOBER, 28, 02:00:00 is a DST swtich time in Belgium
Код производит два различных результата (смещение часового пояса изменения)
//Please note that the local time zone is CET.
00:00:00:00 > execution time < 03:00:00 -> 2012-10-28T02:00:00.050+02:00
03:00:00:00 >= execution time =< 24:00:00 -> 2012-10-28T02:00:00.050+01:00
С другой стороны, с помощью конструктора дает тот же результат
DateTimeZone.setDefault(DateTimeZone.forID("Europe/Brussels"));
DateTime dateTime = new DateTime(2012, OCTOBER, 28, 2, 0, 0, 50); //gives 2012-10-28T02:00:00.050+02:00
I имеют впечатление, что следует использовать конструктор вместо методов date/Time. Но я немного смущен, почему DateTime не может справиться с этим?