将字符串转换为特定的日期格式

时间:2012-05-11 07:33:26

标签: java

我的日期格式为:Thu- Mar 22 2012。它是在字符串变量date1中获取的。我需要将字符串变量中的日期转换为日期格式。我尝试了下面的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();
}

5 个答案:

答案 0 :(得分:2)

你需要三个Ms'MMM'来解析像'Mar'这样的月份缩写。请在'EEE - '之后检查空白。

答案 1 :(得分:1)

将其更改为以下格式

EEE- MMM d yyyy

请注意-MMM

之后的空格

答案 2 :(得分: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 - > Dateformat()适用于Date - > String

答案 3 :(得分:0)

如果已发布的答案不起作用,那么您肯定会遇到语言环境问题。请尝试以下SimpleDateFormat

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

答案 4 :(得分: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();
}