看看我的代码:
try {
// String date = "30Jul2013";
SimpleDateFormat sdf = new SimpleDateFormat("ddMMMyyyy", Locale.ENGLISH);
Date d = sdf.parse(date);
SimpleDateFormat nsdf = new SimpleDateFormat("MMMM dd, yyyy h:mm a", Locale.ENGLISH);
String nd = nsdf.format(d);
System.out.println(nd);
return nd;
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
我收到了一个错误:
java.text.ParseException: Unparseable date: "2013-07-30 10:58:55.171"
at java.text.DateFormat.parse(DateFormat.java:337)
我想从simpledateformat获得2013年7月30日上午11:10的输出。我的代码中有LOCALE。那我该怎么办?
提前致谢!
答案 0 :(得分:2)
try {
// String date = "30Jul2013";
SimpleDateFormat sdf = new SimpleDateFormat("ddMMMyyyy", Locale.ENGLISH);
Date d = sdf.parse(date);
你的日期字符串变量行被注释掉了,那么谁知道你正在解析什么字符串? - JVM是谁。
正如Robert Harvey指出的那样,您实际尝试解析的字符串将在异常消息中为您打印。如果你在解析之前打印那个字符串,你也会发现它不是你所期望的那样,而且编译器是正确的。
总而言之,您在某种程度上期望您的sdf SimpleDateFormat对象正在格式化类似于“30Jul2013”的格式的String,但是JVM告诉您这不是这样,您尝试解析的String事实看起来不像这样,而是“2013-07-30 10:58:55.171”。