JAVA SimpleDateFormat返回错误的格式

时间:2017-06-30 14:58:23

标签: java simpledateformat

我需要转换一个简单的字符串,例如:

30.06.2017 18:00

到一个日期,但我设置的simpledateformat不适用。由于某种原因,它提供了像这样的输出

Fri Jun 30 18:00:00 UTC 2017

我知道有关于这个问题的其他问题,但我想我确定我正确地遵循了所有说明, 我设置格式正确,奇怪的是,我在另一个地方使用相同的代码,它工作正常。 我尝试使用locale.ENGLISH部分和“strict”属性。 真的好像netbeans在拖着我

非常感谢

          System.out.println(newtoday);

给出

          "30.06.2017 18:00";

然后我尝试格式化它:

          try {
              thedate = new SimpleDateFormat("dd.MM.yyyy HH:mm").parse(newtoday);
                            System.out.println(thedate);
          } catch (ParseException ex) {
              Logger.getLogger(frame1.class.getName()).log(Level.SEVERE, null, ex);
          }  

输出

          Fri Jun 30 18:00:00 UTC 2017

感谢你的回答,但问题不在于“输出”

我在做什么:

收集jfreechart的时间序列:

我有一个要解析的日期列表,并添加哪个正常

        Date thedate=null;
          try {
              thedate = new SimpleDateFormat("dd.MM.yyyy HH:mm", Locale.ENGLISH).parse(time);
          } catch (ParseException ex) {
              Logger.getLogger(frame1.class.getName()).log(Level.SEVERE, null, ex);
          }ts1.add(new Millisecond(thedate), ap);

, 但是时间序列的最后一个元素有不同的格式,这就是为什么我必须格式化它,它可以获得正确格式的字符串(newtoday)

现在我格式化了我再次使用的日期

       ts1.add(new Millisecond(thedate), apt);

但它没有添加到系列

现在我认为问题是addtotimeseries无法识别dateformat taht,

如果你说它不是格式..你看到另一个错误吗?

欢呼声

1 个答案:

答案 0 :(得分:3)

使用

输出日期
System.out.println(thedate);

这不会使用您用于解析日期的日期格式,而是使用toString() java.util.Date方法。这就是为什么您看到的日期打印格式与预期不同。

要使用日期格式进行解析和输出,请执行以下操作:

DateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy HH:mm");
Date thedate = dateFormat.parse(newtoday);
System.out.println(dateFormat.format(thedate));