Страницы

Поиск по вопросам

среда, 12 декабря 2018 г.

Как получить дату (Московское время) и сравнить её со строкой yyyy-MM-dd

Есть строка:
String dateFromServer = "2015-12-16";
Как правильно получить объект Date (по Москве) и сравнить его с этой строкой (раньше/позже)?


Ответ

Наиболее удобный способ работы с датами в Java (как минимум до Java 8) - использование библиотеки JodaTime.
Все сведется к тому, чтобы преобразовать строку в локальную дату LocalDate (т.е. дату без привязки к часовому поясу) и получить локальную дату по Москве. А потом сравнить их:
String dateFromServer = "2015-12-16"; LocalDate serverDate = LocalDate.parse(dateFromServer); LocalDate localDate = new LocalDate(DateTimeZone.forID("Europe/Moscow"));
System.out.println(localDate.compareTo(serverDate));

Для Java 8+ код будет очень похожим на JodaTime:
String dateFromServer = "2015-12-16"; LocalDate serverDate = LocalDate.parse(dateFromServer); LocalDate localDate = LocalDate.now(ZoneId.of("Europe/Moscow"));
System.out.println(localDate.compareTo(serverDate));

Комментариев нет:

Отправить комментарий