我正在尝试解析以 "01-26-2012 03:07 AM"
格式显示的日期。
我创建了这个 SimpleDateFormat
:
private static final DateFormat DATE_FORMAT = new SimpleDateFormat("MM-dd-yyyy hh:mm a");
然而每次我解析以下内容时:
String date = "01-26-2012 03:07 AM";
Date myDate = DATE_FORMAT.parse(date.trim());
我得到一个
ParseException
:我的
SimpleDateFormat
字符串是否正确?还有什么可能阻止它解析吗? 最佳答案
这很可能是语言环境问题。例如,如果您尝试使用英语语言环境,它应该可以工作:
DateFormat DATE_FORMAT = new SimpleDateFormat("MM-dd-yyyy hh:mm a", Locale.ENGLISH);
由于您没有指定区域设置,系统会使用默认的区域设置,并且“AM”可能无法正确解析。
下面的代码输出
public static void main(String[] args) throws Exception {
String date = "01-26-2012 03:07 AM";
DateFormat DATE_FORMAT = new SimpleDateFormat("MM-dd-yyyy hh:mm a", Locale.ENGLISH);
Date myDate = DATE_FORMAT.parse(date.trim());
System.out.println("myDate = " + myDate);
}
附带说明一下,例如,如果将代码更改为
Locale.CHINESE
,则会出现解析异常。关于java - SimpleDateFormat 的无法解释的 ParseException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13574113/