java中怎么转换日期格式,Java中的问题转换日期格式

I have a string in the form MMM/dd/yyyy, ie. May/21/2010.

Now I want to convert it to yyyyMMdd, ie. 20100521.

My code is:

public static void main(String[] args) {

ArrayList dates = new ArrayList();

dates.add("Jan/13/2011");

dates.add("Feb/03/2001");

dates.add("Mar/19/2012");

dates.add("Apr/20/2011");

dates.add("May/21/2010");

dates.add("Jun/23/2008");

dates.add("Jul/12/2009");

dates.add("Aug/14/2010");

dates.add("Sep/01/2011");

dates.add("Oct/07/2010");

dates.add("Nov/05/2011");

dates.add("Dec/30/2011");

for(String s : dates) {

System.out.println(transformPrevDate(s));

}

}

And the method to transform:

public String transformPrevDate(String datoe) {

String[] splitter = datoe.split("/");

String m = splitter[0].toUpperCase();

String d = splitter[1];

String y = splitter[2];

DateFormat formatter = new SimpleDateFormat("MMM");

DateFormat formatter2 = new SimpleDateFormat("MM");

try {

Date date = formatter.parse(m);

m = formatter2.format(date);

} catch (ParseException e) {

e.printStackTrace();

}

String date = y + m + d;

return date;

}

The problem is that I get an Unparseable date exception, on May and Oct. I'm from Denmark and if I change it to danish "Maj" and "Okt" it succeeds. So what am I doing wrong here?

解决方案

Use SimpleDateFormat(String pattern, Locale locale) to add Locale to your date parsing (for english, use Locale.ENGLISH).

Better solution:

public String transformPrevDate(String datoe) {

SimpleDateFormat dateFormat = new SimpleDateFormat("MMM/dd/yyyy", Locale.ENGLISH);

SimpleDateFormat dateFormat2 = new SimpleDateFormat("yyyyMMdd");

try {

return dateFormat2.format(dateFormat.parse(datoe));

} catch (ParseException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值