Конвертировать дату в формат "17. Декабрь 2015"
Я получаю дату в виде "20150119" и хочу преобразовать ее в формат "19 января 2015".
Как я могу конвертировать дату в таком формате.
Я попробовал ниже код:
private void convertDate() {
String m_date = "20150119";
SimpleDateFormat originalFormat = new SimpleDateFormat("yyyy.MM.dd");
try {
Date date = originalFormat.parse(m_date.toString());
Log.e("Date is====", date.toLocaleString());
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Но это дает мне ошибку:
java.text.ParseException: не разбираемая дата: "20150119" (со смещением 8)
2 ответа
Вам нужно будет указать два формата: один для анализа вашего ввода, другой для форматирования вашего вывода.
Ошибка возникает из-за того, что строка, которую вы пытаетесь проанализировать, не соответствует формату, указанному вами в
originalFormat
: что нужно бытьSimpleDateFormat originalFormat = new SimpleDateFormat("yyyyMMdd");
если вы хотите разобрать строки формата
String m_date = "20150119";
, Разбор строки с этим форматом даст вамDate
:Date date = originalFormat.parse(m_date);
Тогда вы можете использовать другой формат для вывода
Date
:SimpleDateFormat outputFormat = new SimpleDateFormat("dd. MMMM yyyy"); System.out.println("Date: " + outputFormat.format(date));
Вы используете DateFormat
SimpleDateFormat originalFormat = new SimpleDateFormat("yyyy.MM.dd");
Так SimpleDateFormat
ожидает String
лайк "2015.01.19"
(обратите внимание на точки).
Вы поставляете String
String m_date = "20150119";
поэтому не содержит точек SimpleDateFormat
не могу разобрать String
так как он не содержит точек (как указано вами).
Разобрать свой String
ты должен использовать
SimpleDateFormat originalFormat = new SimpleDateFormat("yyyyMMdd");
Чтобы распечатать проанализированную дату, вы должны использовать другой SimpleDateFormat
например
SimpleDateFormat targetFormat = new SimpleDateFormat("dd. MMMM yyyy");
Тогда вы можете использовать метод format()
отформатировать вашу дату в формате, который вы хотите.