#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();
Комментариев нет:
Отправить комментарий