Сравните время с помощью JodaTime в Android

Мне нужно сравнить, является ли объект DateTime большим / меньшим, чем 9:00 по тихоокеанскому времени, используя библиотеку JodaTime в Android. Я получаю объект DateTime в PST, как это:

DateTime dt = new DateTime(DateTimeZone.forID( "America/Los_Angeles" ));

Как я могу сравнить, является ли время, записанное для этого объекта, больше / меньше 9:00 по тихоокеанскому времени?

Благодарю.

1 ответ

Вы можете использовать один из следующих способов сделать то, что вы хотите.

1) Создать DateTime с TimeZone и час, который вы хотите.

DateTime dt = new DateTime()
             .withHourOfDay(9)
             .withZone(DateTimeZone.forID("America/Los_Angeles"));

А потом сравни dt с DateTime что вы получаете, создаете и т. д.

dt.isAfter(date) или же dt.isBefore(date)

2) Вы можете установить TimeZone что вы хотите копию DateTime что вы получаете.

Я говорю, потому что копировать DateTime объект неизменен. Вы не можете изменить DateTime, который вы получаете, но создать его из него, да. Вы можете прочитать больше об этом здесь: Почему объекты Joda неизменны?

datePST = date.withZone(DateTimeZone.forID("America/Los_Angeles"));
int hour = datePST.getHourOfDay()

Теперь вам просто нужно проверить, если час <или> чем 9.

Другие вопросы по тегам