2013-05-02 193 views
1

我從數據庫獲取日期爲2013-05-03 00:20:29.0。我想把日期解析到EEE MMM dd HH:mm:ss zzz yyyy格式,但是當我解析它,我得到這個異常:如何解析日期至EEE MMM dd HH:mm:ss zzz yyyy格式?

java.text.ParseException: Unparseable date: "2013-05-03 00:20:29.0"

我的代碼如下:

String createdDate = "2013-05-03 00:20:29.0"; 
    SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy"); 
    Date parseDate = format.parse(createdDate); 
+0

您的格式字符串 'EEE MMM DD HH:MM:SS ZZZ YYYY' 不適合你的'createDate'格式!看起來更像是'yyyy-MM-ss HH:mm:ss'和一個'.0'。 – MrSmith42 2013-05-02 19:00:46

回答

3

SimpleDateFormat模式不匹配createdDate。格式應該是:

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S"); 

javadoc

+0

我有問題,當IAM節省EEE MMM日期DD HH:MM:SSžyyyy格式,它被保存爲2013年5月3日00:38:20.0,這可能是原因,同日亞姆努力檢索並顯示 – developer 2013-05-02 19:11:59

+1

必須查看如何保存才能回答該問題。我懷疑你在保存時使用Date對象。在這種情況下,格式將始終是這種模式。這是'Date#toString'使用的模式... – Reimeus 2013-05-02 19:25:34

3

正如我understod要將日期轉換爲新的格式

Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S").parse("2013-05-03 00:20:29.0"); 
String str = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy").format(date); 

您還可以嘗試從數據庫中獲取日期而不是字符串,但如java.sql.Date那麼第一步將是不必要的

0

下面是一個例子:

String str_date= "29/02/2013"; 
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");   
java.util.Date dt = sdf.parse(str_date); 
DateFormat df = new SimpleDateFormat("EEEE"); 
System.out.println(df.format(dt)); 
相關問題