Страницы

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

воскресенье, 29 декабря 2019 г.

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

#java #дата


Есть строка:

String dateFromServer = "2015-12-16";


Как правильно получить объект Date (по Москве) и сравнить его с этой строкой (раньше/позже)?
    


Ответы

Ответ 1



Наиболее удобный способ работы с датами в 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));

Ответ 2



Конкретно в вашем случае: SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date = sdf.parse("2015-12-16"); + обработка ошибки и далее сравнение через compareTo или after/before

Ответ 3



Получение Date: String dateFromServer = "2015-12-16"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date = sdf.parse(dateFromServer); Сравнение c текущей датой: Date curDate = new Date(); if(curDate.getTime() > date.getTime()){ //Время с сервара уже прошло } else { //Время с сервера еще не наступило } UDP момент с временем по Москве: Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("Europe/Moscow")); Date curDate = calendar.getTime();

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

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