您的位置:首页 > 编程语言 > Java开发

Java SimpleDateFormat parse 遭遇unparsable date异常

2016-01-24 10:11 651 查看
在我的win7x32机器,Java 6, 运行以下代码总是报错unparsble date异常

String time = "10:30:35PM";
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ssa");
try {
Date date = sdf.parse(time);
} catch (Exception e) {
System.out.println(e.toString());
}


我仔细检查了日期格式定义”hh:mm:ssa”,发现没有问题。

于是搜索,发现了别人遇到的此类问题的各种原因:

比如有人的输入是从request.getParameter获得的, 用parseObject就可以了

有人是字符串有莫名其妙的隐形字符,需要用replaceAll(奇怪的正则表达式)去掉这些看不见的字符。

而这些都似乎不是我的问题,最后,受到某个帖子的启发,觉得有可能是Locale的问题。果然,因为我是中文操作系统,当我输入改为

String time = "10:30:35下午";


就OK了

但是我的输入必须是“PM”,因此格式定义加上Locale.US就行了。

SimpleDateFormat("hh:mm:ssa",Locale.US);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: