本文介紹了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));
這篇關于Java SimpleDateFormat返回錯誤格式的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,