Итак, у меня есть код:
String ANNOUNCEMENT_DATE = "Sat, 25-Aug-2014 11:00:00 GMT";
DateFormat df = new SimpleDateFormat("EEE, dd-MMM-yyyy HH:mm:ss z");
Date announcementDate = null;
try {
announcementDate = df.parse(announcementDateString);
} catch (ParseException e) {
e.printStackTrace();
}
announcementEpochTime = announcementDate.getTime()/1000;
Итак, как я и ожидал, до 11:00 сегодняшнего дня следующее выражение разрешилось как false:
System.currentTimeMillis()/1000 >= announcementEpochTime
Однако после 11:00:00 я ожидал, что он разрешится как true... но это не так.
Я смотрю на значение fastTime для dateDate, и оно кажется значительно больше, чем текущее системное время, даже сейчас (через 33 минуты).
когда я смотрю на проанализированное объявлениеDate в отладчике, я вижу:
2014-08-25T12:00:00.000+0100
что мне кажется неправильным. Я уверен, что есть какая-то проблема с часовыми поясами или чем-то в этом роде, но я не могу понять это.
Любая идея, почему моя дата анализируется неправильно?
Я знаю, что во многих случаях эти вещи далеко не тривиальные проблемы, поэтому я надеюсь, что кто-то будет знаком с этими утилитами и быстро обнаружит мою проблему (и сэкономит мне полдня лихорадочного гугления)
SimpleDateFormat
не может анализировать переменнуюANNOUNCEMENT_DATE
? должно бытьEEE, dd-MMM-yyyy HH:mm:ss yyyy z
- person ortis   schedule 25.08.2014