2016-05-21 8 views
-1

Привета Мне нужно преобразовать строку в дату ниже мой код,Строка преобразования даты, имеющее исключение при разборе

String string = "January 2, 2010"; 
DateFormat format = new SimpleDateFormat("MM/dd/yyyy", Locale.ENGLISH); 
Date date = format.parse(string); 
System.out.println("Date././."+date); 

Если я запускаю мой код я получает синтаксический анализ исключения, как, как показано ниже,

java.text.ParseException: Непревзойденная дата: «Январь 2,2010»

+1

Ну да - посмотрите формат вашего фактического значения и посмотрите на шаблон, который вы указываете. Они ничем не похожи друг на друга. Пожалуйста, прочитайте документацию для 'SimpleDateFormat'. –

+0

На самом деле я получаю эту строку ввода из другого файла в вышеупомянутом формате, и вывод также должен быть в этом формате (MM/dd/yyyy), поэтому я упомянул только об этом –

+0

Правильно, но вы не используете это код в * формат * - вы используете его для * parse *. Итак, проанализируйте шаблон, соответствующий входным данным, затем отформатируйте его с помощью другого шаблона. Прочтите https://codeblog.jonskeet.uk/2015/05/05/common-mistakes-in-datetime-formatting-and-parsing/ –

ответ

2

Ваш формат должен соответствовать дате, которую вы пытаетесь проанализировать. Например, для вашего использования:

String string = "January 2, 2010"; 
DateFormat format = new SimpleDateFormat("MMMMM dd, yyyy", Locale.ENGLISH); 
+1

Вам нужно всего лишь 4 MMMM, чтобы соответствовать произвольно длинному тексту. –

+0

@ DanielWiddis yup, синдром липкого пальца. Спасибо, что заметили! (отредактировано и исправлено). – Mureinik

+0

@Mureinik thankq –