Возможный неверный результат от JodaTime

Я использую JodaTime для Android ( ссылка), и я пытаюсь рассчитать Period между двумя датами.

Одна дата с сервера с Europe/London часовой пояс и другая дата, которую я создаю как:

DateTimeZone dateTimeZone = DateTimeZone.forTimeZone(TimeZone.getTimeZone("Europe/London"));
DateTime now = DateTime.now(dateTimeZone);

Я хочу получить Period между датой и датой, которую я получаю с сервера.

Я создаю новый Period например, как это:

Period period = new Period(serverDateTime, now, PeriodType.yearMonthDayTime());

но результаты, которые я получаю каждый раз, имеют смещение в 2 часа.

Если я печатаю serverDateTime: 2017-02-04T14:30:00.000+02:00 а также now: 2017-02-04T14:30:13.862Z

и за эти значения я получаю period.getHours() == 2,

Что я должен изменить? Оба раза кажутся правильными, но где-то есть ошибка

1 ответ

Итак, я создавал время с сервера (которое я получил в виде строки), например:

DateTime serverDateTime = new DateTime(Integer.valueOf(year), Integer.valueOf(month),
            Integer.valueOf(day), Integer.valueOf(hours), Integer.valueOf(minutes));

и все, что мне нужно сделать, это добавить timezoneОтвет таков:

DateTime serverDateTime = new DateTime(Integer.valueOf(year), Integer.valueOf(month),
            Integer.valueOf(day), Integer.valueOf(hours), Integer.valueOf(minutes), dateTimeZone);
Другие вопросы по тегам