2012-05-11 135 views
-2

我有一個日期的格式爲:Thu- Mar 22 2012。它是在一個字符串變量date1.I中獲得的,我需要將字符串變量中的日期轉換爲日期格式。我嘗試了下面的ccode,但未能解析日期;請幫助。將字符串轉換爲特定的日期格式

DateFormat formatter; 
Date formatted_date= null; 


formatter = new SimpleDateFormat("EEE-MM d yyyy"); 
try { 
     formatted_date= (Date) formatter.parse(date1); 
} catch (ParseException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 
+1

在' - '後面的格式字符串中缺少空格。 – Kai

+0

你的「星期三」和你的格式之間有一個空格。 「EEE-MM」的錯字? – Roger

+0

我試過了,formatter = new SimpleDateFormat(「EEE-MM d yyyy」);但是得到了同樣的錯誤。 – Anuradha

回答

0
Thu- Mar 22 2012 
EEE- MMM dd yyyy 

我認爲你需要像這樣

UPD:日期格式:

SimpleDateFormat toStringFormatter = new SimpleDateFormat("EEE MMM dd yyyy"); 
String formattedDate = toStringFormatter.format(date); 

所以parse()String - >Date,並format()Date - >String

+0

formatter =新的SimpleDateFormat(「EEE- MMM d yyyy」);它工作..謝謝。 – Anuradha

+0

我還有一個疑問......解析日期的格式爲「Thu Mar 22 00:00:00 GMT + 05:30 2012」。但是我怎樣才能得到它作爲Thu Mar 22 2012本身,在一個變量類型的日期? – Anuradha

+0

好吧,如果你只是使用'formatted_date.toString()',那麼你會在這個「Thu Mar 22 00:00:00 GMT + 05:30 2012」表格中得到日期。但是,您可以使用日期格式化程序以您喜歡的形式輸出日期。我會更新答案。 –

1

其更改後-MMM

2

以下格式

EEE- MMM d yyyy 

注意空間需要三個小姐 'MMM' 分析一個個縮寫,如 '三月'。請檢查'EEE-'後面的空格。

+0

@ stacker:謝謝..它工作..需要'MMM' – Anuradha

0

如果已發佈的答案不起作用,那麼你肯定有一個與語言環境有關的問題。請嘗試以下SimpleDateFormat

formatter = new SimpleDateFormat("EEE- MMM d yyyy", Locale.ENGLISH); 
0

我感謝在給定的模式和給定的語言環境的默認日期格式符號構造SimpleDateFormat的。注意:此構造函數可能不支持所有語言環境。覆蓋所有語言環境

public SimpleDateFormat(String pattern,Locale locale) 
    //local:Locale.ENGLISH 
    //default is not English 
    formatter = new SimpleDateFormat("EEE, MMM d, ''yy", Locale.ENGLISH); 
    try { 
     formatted_date= (Date) formatter.parse("Wed, Jul 4, '01"); 
    } catch (ParseException e) { 
     e.printStackTrace(); 
} 
相關問題