2012-03-16 29 views
0

轉換字符串到日期的時候,我發現了錯誤ClassCastException異常在Java中

java.lang.ClassCastException:java.util.Date
在avb.Test.main(Test.java:38)
的SimpleDateFormat( 「YYYY-MM-DD HH:MM:SS.SSS」)

從代碼

DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); 
String tmp = "2012-03-16 18:58:14.0"; 
Date MaxCmTimerUpdate = (Date)df.parse(tmp); 

上午什麼我做錯了?我如何解決它?

+1

你確定你在'(日期)df.parse(tmp)'行中轉換爲java.util.Date嗎?此外,'DateFormat.parse(String)'已經返回一個java.util.Date,所以不需要投射。 – 2012-03-16 19:23:50

回答

5

我的猜測是,你已經有了一個java.sql.Date進口(或其他一些Date型),而SimpleDateFormat解析到java.util.Date。你根本不需要演員。

您將無法轉換爲不同的類型Date - 如果你需要創建一個java.sql.Date,你必須創建一個基於的java.util.Date,例如一個新的

Date timerUpdate = new Date(df.parse(tmp).getTime()); 
1

你意外導入java.sql.Date代替java.util.Date?這是你需要在那裏投射的唯一原因。

該死! Jon Skeet再次毆打! Jon,Google支付你的什麼? ;-)

1

做這項工作:

DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); 
String tmp = "2012-03-16 18:58:14.0"; 
java.util.Date maxCmTimerUpdate = df.parse(tmp); 

如果是這樣,其他2個答案是正確的。