Java SimpleDateFormat返回错误格式
我需要转换一个简单的字符串,例如:
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.Date
的toString()
方法。这就是为什么您会看到日期以不同于预期的格式打印。
要使用日期格式进行解析和输出,请执行如下操作:
DateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy HH:mm");
Date thedate = dateFormat.parse(newtoday);
System.out.println(dateFormat.format(thedate));
相关文章