2013-04-08 135 views
-2

我想將文本格式化爲日期。以下是我有:Java簡單日期格式

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」。同樣的錯誤。

如何解析這個字符串到日期?任何可選的方式?我錯過了什麼?

感謝,

+5

您是否使用'y'或'Y'? – 2013-04-08 19:48:24

+1

異常消息與您的代碼不匹配。顯然,12.1.5與yyyy.MM.dd不符。發佈真實的代碼和真正的異常消息,或者自己弄清楚,因爲它應該很明顯。 – 2013-04-08 19:50:09

+2

好:'String pattern =「yyyy.MM.dd」;'(小寫「yyyy」)。問:'非法模式字符'Y''(大寫字母「Y」)。問:你確定要發佈確切的代碼和確切的錯誤信息嗎? – paulsm4 2013-04-08 19:51:11

回答

3

你給的代碼工作正常 - 儘管事實是你聲稱你就會有一個4位數的年份,2位數的一個月,然後2位數日期,然後提供2-1-1很漂亮。

鑑於你得到的例外,我懷疑你的模式實際上是"YYYY.MM.dd"。這在Java 7中有效,其中Y表示「週年」,但它是而不是Java 6中有效,它不支持Y作爲格式說明符 - 只有y

即使它是有效的,你真的不希望Y在這裏 - 你只能指定星期幾,當你還指定星期幾和星期幾,你不是在這裏做。

粘着你實際上已經在你發佈的代碼得到了模式 - 但要確保你的數據實際上與它匹配...