Posted on 2011-11-15 10:10
ZhouFeng 阅读(2310)
评论(0) 编辑 收藏 所属分类:
原创 、
JAVA
在做一个任务时,需要对日期进行转换,源始字串格式为:Tue Nov 15 09:17:35 CST 2011
希望转换成日期类型,写了如下代码
Date pubd = (new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy")).parse("Tue Nov 15 09:17:35 CST 2011");
没想到出现了异常提示
java.text.ParseException: Unparseable date: "Tue Nov 15 09:17:35 CST 2011"
我逐步排查,最后发现是MMM的问题,因为最后将代码精简到只剩MMM时还是出现这样的问题
Date pubd = (new SimpleDateFormat("MMM")).parse("Nov");
在网上查了些文档,也多半是讲解怎样用SimpleDateFormat进行日期转换的,好像遇到这样异常的还不多,最后看到JAVA文档里还有一个构造函数
SimpleDateFormat(String pattern, Locale locale)
结合网上的一些提示,Nov是英文中的表示方法,就试着在构造函数里添加一个Locale.US,结果如下
Date pubd = (new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy",Locale.US)).parse("Tue Nov 15 09:17:35 CST 2011");
终于解决了这个问题,也许这对于有经验的老手来说,算不上什么。暂时记在这里先,如果有朋友再碰到这样的问题,希望能很快解决