有人能指出这里似乎有什么问题吗?
try {
Date date = new SimpleDateFormat("Mon, 02 Nov 2015 15:13:00 EET").parse("EEE, dd MMM yyyy hh:mm:ss z");
} catch (ParseException e) {
e.printStackTrace();
}
和stacktrace:
java.text.ParseException: Unparseable date: "Mon, 02 Nov 2015 15:13:00 EET" (at offset 26)
我怀疑使用我所使用的语言环境,但我无法确定。似乎" z"因为时区不起作用。
编辑: 对不起,之前的异常很有趣,我改了但是忘了在这里更新。
try {
Date date = new SimpleDateFormat("EEE, dd MMM yyyy hh:mm:ss z", Locale.US).parse("Mon, 02 Nov 2015 15:13:00 EET");
} catch (ParseException e) {
e.printStackTrace();
}
答案 0 :(得分:1)
在查看SimpleDateFormat的javadoc后,您正在使用" hh"小时,假设是12小时的时间。使用HH 24小时。你的例子是15小时。
答案 1 :(得分:0)
我认为你在这里错过了'z'。
尝试:
Date date = new SimpleDateFormat("Mon, 02 Nov 2015 15:13:00 EET").
parse("EEE, dd MMM yyyy hh:mm:ss zzz")
由于您的时区有三个字符。
答案 2 :(得分:0)
这样的异常可能来自使用错误的Locale解析日期。例如,这个日期格式化程序:
SimpleDateFormat df = new SimpleDateFormat("EEE, dd MMM yyyy hh:mm:ss z", Locale.US);
将成功解析示例日期:
Date date = df.parse("Mon, 02 Nov 2015 15:13:00 EET");
但是以下内容将为您提供例外
SimpleDateFormat df = new SimpleDateFormat("EEE, dd MMM yyyy hh:mm:ss z", Locale.FRENCH);
我希望Android中的Locale可以根据用户设置的语言进行选择。