Возможный неверный результат от 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);