Parse没有给我正确的日期格式

时间:2013-03-10 20:16:11

标签: java parsing date simpledateformat jdatechooser

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 个答案:

答案 0 :(得分:2)

  

但是当我把它解析成日期时,它会给我这样的日期:2013年3月13日00:00:00 EDT 2013.

解析它时,会得到Date。使用Date.toString() 始终会为您提供相同的格式。

  

将此Date对象转换为以下形式的字符串:

dow mon dd hh:mm:ss zzz yyyy

如果您想格式化特定格式的Date,请改用SimpleDateFormat

(或者,使用Joda Time及其解析/格式化工具,这通常更好 - 与API的其余部分一样。)