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