英语日期的转换

2015-11-29  本文已影响63人  Kjiang

背景

需要将日期字符串“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

上一篇下一篇

猜你喜欢

热点阅读