使用以下代码
解析2013年7月10日星期四时的错误Date parse = new SimpleDateFormat("EEE d M yyyy").parse("Thu 10 July 2013");
它适用于
new SimpleDateFormat("EEE M yyyy").parse("Thu July 2013");
但如果我把日期(d)放在字符串中,那么它会抛出异常
new SimpleDateFormat("EEE d M yyyy").parse("Thu 10 July 2013");
java.text.ParseException: Unparseable date: "Thu 10 July 2013"
非常感谢
答案 0 :(得分:3)
尝试将格式扩展为EEE d MMMM yyyy
单个或双M
将被中断为数字月份值(即{0}7
),MMM
将被中断为短月份名称(即Jul
)并且MMMM
将被中断为完整的月份名称(即July
)
还应该注意的是,在我的测试MMM
和MMMM
似乎有效
答案 1 :(得分:1)
使用dd
代替d
以及MMM代替MM:
new SimpleDateFormat("EEE dd MMM yyyy").parse("Thu 10 July 2013");
答案 2 :(得分:0)
我试过了
new SimpleDateFormat("EEE d M yyyy").parse("Thu 10 July 2013");
不起作用因此我将月份格式更改为MMMM
Date parse = new SimpleDateFormat("EEE MMMM yyyy").parse("Thu July 2013");
Date p1 = new SimpleDateFormat("EEE d MMMM yyyy").parse("Thu 10 July 2013");
System.out.println(p1);
这很有效。
答案 3 :(得分:0)
我试试这个,但它会导致运行时异常
java.util.Date dt = new SimpleDateFormat("EEE M yyyy").parse("Thu July 2013");
根据java docs Oracle Java Doc
如果要使用月份名称(如 7月或 7月)来分析日期字符串,则应使用 MMMM 或 MMM 分别。
如果要解析包含月份数的日期,可以使用 M 或 MM .e.g。 (“28 8 2012”)
对于您的情况,您应该使用 MMM或MMMM 而不是M.like this
new SimpleDateFormat("EEE d MMM yyyy").parse("Thu 10 July 2013");
或
new SimpleDateFormat("EEE d MMMM yyyy").parse("Thu 10 July 2013") ;