Хотите получить минуты между двумя значениями ISO 8601 в двух разных часовых поясах с помощью joda

У меня есть две строки из приложения для Android в формате ISO 8601, в которых я пытаюсь найти количество минут между двумя временами. Мне указали на Joda Time, который очень помог. Однако теперь я обнаружил, что одна строка находится в формате UTC, а другая - в моем местном времени.

Например, «2012-05-11T02:34:18+00:00» — это UTC, а «2012-05-10T21:44:09-05:00» — мое местное время.

У меня есть следующий блок кода, который находит количество минут между двумя временами. Мой вопрос в том, как я могу изменить время UTC на свое местное время, чтобы получить точные минуты между ними.

DateTime start = new DateTime(currentTime);
DateTime end = new DateTime(laterTime);
int min = Minutes.minutesBetween(start,end).getMinutes();

person shyamal    schedule 11.05.2012    source источник


Ответы (1)


Как мне изменить время UTC на мое местное время, чтобы получить точные минуты между ними?

Я так понимаю, что вам это не нужно.

Экземпляр DateTime представляет точку на временной шкале вместе с часовым поясом, который управляет тем, как точка времени сопоставляется с временным интервалом (например, когда вы вызываете геттеры). Когда вы берете разницу во времени между парой экземпляров DateTime, вы получаете меру, представляющую продолжительность между двумя точками на временной шкале. Это не зависит от часовых поясов.

Другими словами, если предположить, что два экземпляра DateTime были созданы правильно, ваш код должен работать как есть.

person Stephen C    schedule 11.05.2012