Java: невозможно проанализировать «23/10/1973» в формате «дд / мм / гггг ЧЧ: мм» - PullRequest
0 голосов
/ 09 ноября 2010

Я пытаюсь проанализировать многие строковые даты по датам, некоторые с временной частью, другие без, в формате "дд / мм / гггг ЧЧ: мм".

public static Date StringToDate (String format, String theDate) {

  SimpleDateFormat df = new SimpleDateFormat(format);

  Date retDate = null;
  try {
   df.setLenient(true);
   retDate = df.parse(theDate);
  } 
  catch (ParseException e) {
   e.printStackTrace();
  }

  return (retDate);
 }

(здесь формат всегда "дд / мм / гггг ЧЧ: мм").

Но это вызывает исключение, даже если setLenient имеет значение true. Знаете ли вы, как я могу преобразовать в Date множество строк, отформатированных как «дд / мм / гггг ЧЧ: мм: сс», но с кем-то без времени, с другими без секунд и еще с одной со всем?

Ответы [ 2 ]

1 голос
/ 09 ноября 2010

Если вы знаете, что у некоторых строк есть время, а у других - нет, а других случаев нет, я бы просто проверил длину строки. Однако, если у вас есть много разных форматов, я бы попробовал каждый в некотором порядке, который имеет смысл, пока вы не получите правильную дату.

0 голосов
/ 09 ноября 2010

У меня всегда есть две строки синтаксического анализа, и я анализирую дважды; один раз с датой / временем и один раз только с датой.

...