当使用SimpleDateFormat解析日期字符串时,总是报错.如下:
Java代码
System.out.println(new SimpleDateFormat("yyyyy.MMMMM.dd GGG hh:mm aaa").parse("02001.July.04 AD 12:08 PM"));
错误信息:
Java代码
Exception in thread "main" java.text.ParseException: Unparseable date: "02001.July.04 AD 12:08 PM"
at java.text.DateFormat.parse(DateFormat.java:337)
at com.test.TestMain.main(TestMain.java:18)
后来通过下列语句发现Locale是zh_CN:
Java代码
System.out.println(Locale.getDefault());
因为当使用当前的模式解析日期时,MMMMM会被解析成中文,aaa也会解析成中文. 所以如果现在是英文的字符串时,必须手动指定Locale,如下:
Java代码
System.out.println(new SimpleDateFormat("yyyyy.MMMMM.dd GGG hh:mm aaa",Locale.US).parse("02001.July.04 AD 12:08 PM"));
可能平时用得多的还是是类似于"yyyy-MM-dd HH:mm:ss SSS" 这样的模式.所以就没有使用指定Locale的API.