我试图解析一个约会,但我奇怪地得到一个例外.
这是代码:
import java.util.Date;
String strDate = "Wed, 09 Feb 2011 12:34:27";
Date date;
SimpleDateFormat FORMATTER = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss");
try {
date = FORMATTER.parse(strDate.trim());
System.out.println(date);
} catch (ParseException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
例外是:
java.text.ParseException:无法解析的日期:"Wed,09 Feb 2011 12:34:27",位于DateTest.main的java.text.DateFormat.parse(DateFormat.java:337)(DateTest.java:17)
我已阅读文档,我认为我的模式是正确的.所以我不明白......
任何的想法?
谢谢!
先前创建的测试使用DateTimeFormatter.ofPattern("ha");并返回“10AM”(表示“ 2017-04-09T10:00-06:00[US/Mountain]”)。
在我的 MacO 和 Java 下 ['openjdk version "11.0.12"'] 我得到“10am”
"10AM" != "10am"
Run Code Online (Sandbox Code Playgroud)
在规范中,我看到“ha”应该创建“10AM”而不是“10am”,请参阅:https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html
有什么建议吗?
我有以下方法:
public static Date convertFromWowInterface(String wowinterfaceFormat){
Date date = null;
try {
SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd-yy hh:mm a");
date = dateFormat.parse(wowinterfaceFormat);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
Run Code Online (Sandbox Code Playgroud)
传递的字符串格式为:
"08-11-19 07:00 AM"
Run Code Online (Sandbox Code Playgroud)
显然没有引号。现在,上述方法在我的Mac上可以正常工作,但是当我的某些用户使用该程序(在Windows上)时,他们会收到异常:
java.text.ParseException: Unparseable date: "08-11-19 07:00 AM"
at java.base/java.text.DateFormat.parse(DateFormat.java:395)
Run Code Online (Sandbox Code Playgroud)
操作系统是否在这里有所作为?还是还有其他东西在玩?据我所知,SimpleDateFormat与输入字符串完全匹配?