Android конвертирование даты в строку
Я хочу конвертировать: ср 06 апр 09:37:00 по Гринвичу +03:00 2016 по 02.02.2012. Что я пробовал
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
Date date = sdf.parse(mydate);
а также
String mydate = "Wed Apr 06 09:37:00 GMT+03:00 2016";
SimpleDateFormat src = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzzz yyyy");
SimpleDateFormat dest = new SimpleDateFormat("dd/MM/yyyy");
Date date = null;
try {
date = src.parse(mydate);
} catch (ParseException e) {
Log.d("deneme",e.getMessage());
}
String result = dest.format(date);
но это дает ошибку. Непонятная дата: "Ср. Апр. 06 09:37:00 GMT+03:00 2016" (со смещением 0). Любая идея, как я могу ее проанализировать?
1 ответ
Решение
Я думаю, что вы пытаетесь отформатировать английскую дату локали, но ваша системная локаль не английская. Поэтому, когда вы создаете SimpleDateFormat
объект указать Locale
в явной форме.
Попробуйте этот код,
String mydate = "Wed Apr 06 09:37:00 GMT+03:00 2016";
SimpleDateFormat src = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzzz yyyy", Locale.ENGLISH);
SimpleDateFormat dest = new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH);
Date date = null;
try {
date = src.parse(mydate);
} catch (ParseException e) {
Log.d("Exception",e.getMessage());
}
String result = dest.format(date);
Log.d("result", result);