Java 简单日期格式

Ray*_*ira -2 java string date date-format simpledateformat

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

String pattern = "yyyy.MM.dd";
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
Date d=sdf.parse("12.1.5");
Run Code Online (Sandbox Code Playgroud)

我得到:

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

这一点。

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

如何将此字符串解析为日期?有什么可选的方式吗?我错过了什么?

谢谢,

Jon*_*eet 5

您提供的代码运行良好 - 尽管您声称您将拥有 4 位数字的年份、2 位数字的月份和 2 位数字的日期,然后提供 2-1-1的事实非常棘手。

鉴于你得到的例外,我怀疑你的模式实际上是 "YYYY.MM.dd"。在是有效的Java 7这里Y的意思是“一周年”,但它不是有效的Java 6中不支持Y的格式说明-只y

即使它是有效的,您也确实不希望Y在这里 - 当您还指定周中年和周中的周时,您只会指定周年,而您在这里没有这样做。

坚持您在发布的代码中实际获得的模式 - 但请确保您的数据实际上与其匹配......