Java SimpleDateFormat返回错误格式

2022-08-24 00:00:00 simpledateformat java

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

30.06.2017 18:00

为日期,但我设置的简单日期格式不适用。出于某种原因,它会给出这样的输出

UTC 2017年6月5日18:00:00

我知道关于这个问题还有其他问题,但我认为我肯定我正确地遵循了所有的说明, 我设置了正确的格式,奇怪的是,我在另一个地方使用了相同的代码,它运行得很好。 我尝试使用Locale.ENGLISH部分和"Strong"属性。 看起来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

感谢DPR的答复,但问题不在"输出"

我所做的是:

收集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);

但它不会添加到系列

现在我认为问题出在addtotimesSeries无法识别的日期格式,

如果你说这不是格式..您是否看到另一个错误?

干杯


解决方案

您使用

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

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

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

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

相关文章