я получил эту строку даты, например:
Wed, 19 Oct 2016 12:00 PM CEST
теперь я пытаюсь преобразовать его в календарь с помощью SimpleDateFormat
SimpleDateFormat sdf = new SimpleDateFormat("EEE, d MMM yyyy hh:m a zzz", Locale.US);
И когда я пытаюсь разобрать его, я получаю следующую ошибку:
Unparseable date: "Wed, 19 Oct 2016 12:00 PM CEST" (at offset 26)
Я ценю каждую помощь!
Изменить:
Полный код разбора:
@Override
public WeatherData parseCurrentWeatherData(String jsonString) {
WeatherData weatherData = new WeatherData();
try {
JSONObject obj = new JSONObject(jsonString);
JSONObject mainObj = obj.getJSONObject("query").getJSONObject("results").getJSONObject("channel");
JSONObject condition = mainObj.getJSONObject("item").getJSONObject("condition");
Calendar cal = new GregorianCalendar();
SimpleDateFormat sdf = new SimpleDateFormat("EEE, dd MMM yyyy hh:m a z", Locale.US);
cal.setTime(sdf.parse(condition.getString("date")));
weatherData.setCalendar(cal);
} catch(JSONException | ParseException ex) {
Log.e("DataFetcher", ex.getLocalizedMessage());
}
return weatherData;
}
Решение:
Похоже, Android не может разобрать некоторые часовые пояса. Спасибо @Burhanuddin Rashid за такой подход.
String strDate = condition.getString("date").replace("CEST", "GMT+0200");
Решение здесь: Неразборная дата: пятница, 10 октября, 23 :11:07 IST 2014 (по смещению 20)