背景
需要將日期字符串“Dec 2014”轉換成日期。
版本一
import java.util.*;
import java.io.*;
import java.text.*;
public class Main
{
public static void main(String[] args) throws ParseException {
DateFormat format = new SimpleDateFormat("MMM yyyy");
format.setLenient(true);
Date date = format.parse("Jul 2014");
System.out.println(date);
}
}
編譯執行后產生異常:
Exception in thread "main" java.text.ParseException: Unparseable date: "Jul/2014"
at java.text.DateFormat.parse(DateFormat.java:357)
at Main.main(Main.java:10)
修改版
發現這個問題后在網絡上搜索,發現對SimpleDateFormat的用法基本與上面一致。一直找不到
為什么我會產生異常。后來在
stackoverflow上找到答案,
在創建format時應該設定Locale.
//僅修改第8行
DateFormat format = new SimpleDateFormat("MMM yyyy", Locale.ENGLISH);
參考
[1]: Date format parse exception - EEE MMM dd HH:mm:ss Z yyyy
于 2015-01-11