У меня есть строка даты, которая выглядит следующим образом:Синтаксических - гггг-дд-мм чч: мм: сс
2015-12-24 08:06:44
Теперь у меня есть функция синтаксического анализа:
public static String parseDate(String date) {
Date oldDate = null;
try {
System.out.println("Unparsed: "+date);
DateFormat oldFormat = new SimpleDateFormat("yyyy-mm-dd hh:mm:ss");
oldDate = oldFormat.parse(date);
System.out.println("old Date parsed: "+oldDate);
DateFormat newFormat = new SimpleDateFormat("yyyy-mm-dd", Locale.ENGLISH);
Date result = newFormat.parse(oldDate.toString());
return result.toString();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
первый System.out дает мне:
Unparsed: 2015-12-24 08:06:44
СЕКУНДА Зонда один:
Sat Jan 24 08:06:44 GMT+05:30 2015
Где, как для второго я четко упоминается формат даты, чтобы быть как:
new SimpleDateFormat("yyyy-mm-dd hh:mm:ss");
Пожалуйста посоветуйте на что случилось здесь
Я только хочу получить месяц и день из строки ввода - Желаемый будет Dec 24
из приведенной выше строки даты.
Вы используете неправильный формат строки, в основном. У вас есть минуты в два раза и 12-часовой формат вместо 24-часового формата. Вы хотите 'yyyy-MM-dd HH: mm: ss'. Я предлагаю вам прочитать http://codeblog.jonskeet.uk/2015/05/05/common-mistakes-in-datetime-formatting-and-parsing/ –
Это путает с такими плохими соглашениями об именах, хотя я должен был почистить с документацией. – User3
Это не плохое соглашение об именах - оно стандартно во многих местах, но да, это требует, чтобы вы прочитали документацию. Как вы ожидали, что «мм» означает две разные вещи? –