Java 字符串到日期转换中出现异常

Java 字符串到日期转换中出现异常,java,Java,使用以下代码解析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"); 但是如果我在字符串中输入day(d),那么它将抛出以下异常 new SimpleDateFormat("EEE d M yyyy").parse("T

使用以下代码解析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");
但是如果我在字符串中输入day(d),那么它将抛出以下异常

new SimpleDateFormat("EEE d M yyyy").parse("Thu 10 July 2013");

java.text.ParseException: Unparseable date: "Thu 10 July 2013"

感谢您的帮助

使用
dd
代替
d
,也使用MMM代替MM:

new SimpleDateFormat("EEE dd MMM yyyy").parse("Thu 10 July 2013");

使用
dd
代替
d
,也使用MMM代替MM:

new SimpleDateFormat("EEE dd MMM yyyy").parse("Thu 10 July 2013");

尝试将格式扩展为类似于
EEE d MMMM yyyy

一个或两个
M
将被中断作为数字月份值(即
{0}7
),
MMM
将被中断作为短月份名称(即
Jul
),而
MMMM
将被中断作为完整月份名称(即
July


还应该注意的是,在我的测试中,
MMM
MMMM
似乎有效

尝试将格式扩展为类似于
EEE d MMMM yyyy

一个或两个
M
将被中断作为数字月份值(即
{0}7
),
MMM
将被中断作为短月份名称(即
Jul
),而
MMMM
将被中断作为完整月份名称(即
July

还应该注意的是,在我的测试中,
MMM
MMMM
似乎起了作用

我尝试了

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);
这起作用了。

我试着

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);

这正在工作。

我尝试了这个,但它会导致运行时异常

java.util.Date  dt = new SimpleDateFormat("EEE M yyyy").parse("Thu July 2013");
根据java文档

如果要使用月份名称(如JulyJul来解析日期字符串,则应分别使用MMMMMMM

如果要分析包含月数的日期,可以使用MMM。(“2012年8月28日”)

对于您的情况,您应该使用MMM或MMMM而不是像这样的M

new SimpleDateFormat("EEE d MMM yyyy").parse("Thu 10 July 2013");


我尝试了这个,但它导致运行时异常

java.util.Date  dt = new SimpleDateFormat("EEE M yyyy").parse("Thu July 2013");
根据java文档

如果要使用月份名称(如JulyJul来解析日期字符串,则应分别使用MMMMMMM

如果要分析包含月数的日期,可以使用MMM。(“2012年8月28日”)

对于您的情况,您应该使用MMM或MMMM而不是像这样的M

new SimpleDateFormat("EEE d MMM yyyy").parse("Thu 10 July 2013");


new SimpleDateFormat(“EEE M yyyy”).parse(“2013年7月4日”)
实际上对我不起作用,它会抛出一个
不可解析的日期:“2013年7月4日”
新SimpleDateFormat(“EEE M yyyy”).parse(“2013年7月4日”);新的SimpleDateFormat(“EEE M yyyy”)不起作用。解析(“2013年7月4日”)实际上对我不起作用,它会抛出一个不可解析的日期:“2013年7月4日”例外新的SimpleDateFormat(“EEE M yyyy”)。解析(“2013年7月4日”);“技术上”不起作用“
dd
不需要它才能起作用;)但事实并非如此。d或dd,问题是使用M.“技术上”
dd
不需要这样做;)但事实并非如此。d或dd,问题是使用M。