Сравните время с помощью 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.