关于java String格式 转Date格式 SimpleDateFormat 报java.text.ParseException 错误





我们日常在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);
运行结果:
Wed Jul 04 09:00:00 CST 2001

你可能感兴趣的:(关于java String格式 转Date格式 SimpleDateFormat 报java.text.ParseException 错误)