我们日常在java程序中 ,将字符串类型的日期转化为date型
,常用的方法是 java.text.SimpleDateFormat类。
对于这种标准的常规的日期格式,我们可以很顺利的转化。
但是对于标准的英文日期就会出现问题:
String dateString="Tuesday, July 04, 2001 09:00 AM";
SimpleDateFormat dateFormat = new SimpleDateFormat("EEE, MMM dd, yyyy HH:mm a");
Date date=dateFormat.parse(dateString)
这个时候会报出:
Exception in thread "main" java.text.ParseException: Unparseable date: "Tuesday, July 04, 2001 09:00 AM"
at java.text.DateFormat.parse(Unknown Source)的错误,
最后发现时是时区设置的问题;
解决办法很简单,只需要在开头设置
Locale locale = new Locale("en", "US", "WIN");
Locale.setDefault(locale);
测试一下结果:
Locale locale = new Locale("en", "US", "WIN");
Locale.setDefault(locale);
String dateString="Tuesday, July 04, 2001 09:00 AM";
SimpleDateFormat dateFormat = new SimpleDateFormat("EEE, MMM dd, yyyy HH:mm a");
Date date=dateFormat.parse(dateString);
</pre><pre class="java" name="code">运行结果:
Wed Jul 04 09:00:00 CST 2001