2013-03-10 1 views
0
public LigneReservation(Date dateArrivee, Date dateDepart, 
     String categorie, int quantite) { 
    super(); 

    SimpleDateFormat form = new SimpleDateFormat("yyyy-MM-dd"); 
    try { 
     this.dateArrivee = form.parse(form.format(dateArrivee)); 
     this.dateDepart = form.parse(form.format(dateDepart)); 
     String s = form.format(dateArrivee); 

     System.out.print(form.parse(s)); 
    } catch (ParseException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    this.categorie = categorie; 
    this.quantite = quantite; 
} 

Это, как я вызываю метод:Анализировать не дает мне формат правильной даты

ctrlRes.setLigneCourante(ctrlRes.creerLigne(dateArrivee.getDate(), 
    dateDepart.getDate(), (String)listeCatCh.getSelectedItem(), 
    Integer.parseInt(champQteCh.getText()))); 

Так что я сначала извлечь дату из JDateChooser полей, а затем я передать их в конструктор LigneReservation, то Строка S показывает мне правильный формат, который я хочу «yyyy-mm-dd», но когда я разбираю его до даты, он дает мне такие даты: Wed Mar 13 00:00:00 EDT 2013. Как я могу это исправить?

Благодаря

ответ

2

но когда я разобрать его на сегодняшний день, это дает мне дату, как это: Ср Мар 13 00:00:00 EDT 2013.

Когда вы разбираете его, вы получите Date. Использование Date.toString()всегда дает вам тот же формат.

Преобразует этот объект Date в строку вида:

dow mon dd hh:mm:ss zzz yyyy 

Если вы хотите отформатировать в определенном формате в Date, используйте SimpleDateFormat вместо этого.

(В качестве альтернативы, используйте Joda Time и его разбор/Formatter объекты, которые обычно лучше. - как остальная часть API)

+0

Но это то, что я использовал, проблема в том, SimpleDateFormat .format возвращает строку в то время как я хочу дата, поэтому я разбираю возвращенную строку или я неправильно понял вас? – user2133558