Parse не дает мне правильный формат даты

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, Как я могу это исправить?

Спасибо

1 ответ

но когда я анализирую его на дату, он дает мне такие даты: ср 13 марта 00:00:00 ПО ВОСТОЧНОМУ ВРЕМЕНИ 2013.

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

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

dow mon dd hh:mm:ss zzz yyyy

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

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

Другие вопросы по тегам