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).