2012-05-11 110 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(); 
} 
相关问题