我需要转换一个简单的字符串,例如:
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,
如果你说它不是格式..你看到另一个错误吗?
欢呼声
答案 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));