-2

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

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

1 回答 1

5

您提供的代码工作正常 - 尽管您声称您将有一个 4 位数的年份、2 位数的月份和 2 位数的日期,然后提供 2-1-1 的事实是相当不可靠的。

鉴于您遇到的异常,我怀疑您的模式实际上是 "YYYY.MM.dd"相反的。这在Java 7中有效,Y意思是“周年”,但在支持格式说明符的Java 6中无效- only 。Yy

即使它是有效的,你也真的不想Y在这里 - 当你还指定周年和周中的星期时,你只会指定周年,而你在这里没有这样做。

坚持你在你发布的代码中实际得到的模式——但要确保你的数据真正匹配它......

于 2013-04-08T19:50:22.237 回答