Неверный шаблон, который вы используете для вашего SimpleDateFormat
.
Эта модель должна соответствовать вашему заданный формат даты:
EEE MMM dd HH:mm:ss Z yyyy
использовать его при создании SimpleDateFormat
:
SimpleDateFormat formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy");
Для получения дополнительной информации о том, что означают различные буквы, имеют взгляд на documentation for SimpleDateFormat
.
Заметим также, что SimpleDateFormat.parse()
не даст вам java.sql.Date
, как упомянуто в названии, а скорее java.util.Date
.
Edit: Для вывода даты в другом формате, вы можете создать второй SimpleDateFormat
с шаблоном, который представляет желаемый формат вывода. Затем вы можете преобразовать его обратно в строку, которую вы хотите использовать SimpleDateFormat.format()
:
SimpleDateFormat outputFormat = new SimpleDateFormat("MM/dd/yyyy");
String output = outputFormat.format(yourDate);
System.out.println(output);
В целом, это приводит к следующему коду:
String input = "Wed Jan 01 00:00:00 CST 2014";
SimpleDateFormat inputFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy");
try {
Date date = inputFormat.parse(input);
SimpleDateFormat outputFormat = new SimpleDateFormat("MM/dd/yyyy");
String output = outputFormat.format(date);
System.out.println(output); // 01/01/2014
} catch (ParseException e) {
e.printStackTrace();
}
Формат вашей даты не совпадает с форматом, используемым в 'SimpleDateFormat'. –
не может найти матч, можете вам помочь. – tom
Не знаете, что вы подразумеваете под «неспособным найти совпадение» - прочитали ли вы документацию для 'SimpleDateFormat'? Сравните ваш шаблон со значением, которое вы анализируете ... –