2016-01-29 7 views
0

У меня есть строка даты, которая выглядит следующим образом:Синтаксических - гггг-дд-мм чч: мм: сс

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 из приведенной выше строки даты.

+2

Вы используете неправильный формат строки, в основном. У вас есть минуты в два раза и 12-часовой формат вместо 24-часового формата. Вы хотите 'yyyy-MM-dd HH: mm: ss'. Я предлагаю вам прочитать http://codeblog.jonskeet.uk/2015/05/05/common-mistakes-in-datetime-formatting-and-parsing/ –

+0

Это путает с такими плохими соглашениями об именах, хотя я должен был почистить с документацией. – User3

+1

Это не плохое соглашение об именах - оно стандартно во многих местах, но да, это требует, чтобы вы прочитали документацию. Как вы ожидали, что «мм» означает две разные вещи? –

ответ

0

Его MM за месяц не mm.

DateFormat oldFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss a"); 

SimpleDateFormat doc

+0

Я подозреваю, что OP хочет различать между 8 утра и 8 вечера. –

+1

За исключением того, что теперь не соответствует входной строке ... (Подсказка: я на 99,9% уверен, что OP хочет HH, а не hh.) –

Смежные вопросы