Java简单日期格式

Java简单日期格式,java,string,date,date-format,simpledateformat,Java,String,Date,Date Format,Simpledateformat,我正在尝试将文本格式化为日期。以下是我所拥有的: String pattern = "yyyy.MM.dd"; SimpleDateFormat sdf = new SimpleDateFormat(pattern); Date d=sdf.parse("12.1.5"); 我得到: java.lang.IllegalArgumentException:非法模式字符“Y” 在这一点上 我还尝试使用ParsePosition以及“2012.01.05”。同样的错误 如何将此字符串解析为日期?有其

我正在尝试将文本格式化为日期。以下是我所拥有的:

String pattern = "yyyy.MM.dd";
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
Date d=sdf.parse("12.1.5");
我得到:

java.lang.IllegalArgumentException:非法模式字符“Y”

在这一点上

我还尝试使用ParsePosition以及“2012.01.05”。同样的错误

如何将此字符串解析为日期?有其他选择吗?我错过了什么


谢谢,

您给出的代码运行良好-尽管您声称您将拥有4位数的年、2位数的月、2位数的日,然后提供2-1-1这一事实相当愚蠢

考虑到您遇到的异常,我怀疑您的模式实际上是
“YYYY.MM.dd”
。这在
Y
表示“周-年”的情况下有效,但在不支持
Y
作为格式说明符的情况下无效-仅
Y

即使它是有效的,您也确实不希望在这里使用
Y
——您只需要在指定周年时指定周年和周日,而在这里您没有这样做


坚持您发布的代码中实际包含的模式-但确保您的数据与之匹配…

您使用的是
y
还是
y
?异常消息与您的代码不匹配。显然,12.1.5与yyyy.MM.dd不匹配。发布真正的代码和真正的异常消息,或者自己解决,因为它应该是显而易见的。好:
String pattern=“yyyy.MM.dd”(小写“yyy”)。Q:
非法模式字符“Y”
(大写“Y”)。问:你确定你发布的是确切的代码和错误消息吗?@JB Nizet,AFAIK,“2013”或“13”应该是有效输入,输入时间为“yyy”:谢谢大家。1、我使用的是
y
,而不是
y
。我还尝试过使用4位数的年份、2个月和2天,与我的SDF保持一致。张贴在这里的代码是我正在修补的。但这也失败了。@JB Nizet@0A0D