2012-08-29 55 views
0

試圖解析以下時間戳:SimpleDateFormat用於此類RFC時間戳?

2008-09-19T19:05:30.000Z

但是我得到一個ParseException。有沒有人知道可以照顧這一點的類或SimpleDateFormat?

我在斯卡拉現在使用的是什麼(Java的回答工作,太):

new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.Z")

感謝您的幫助。

回答

3

而且單引號(')的Z左右。這指示解析器將Z視爲一個常量字符(就像T)。還要在毫秒中加上SSS。因此你的模式將是yyyy-MM-dd'T'HH:mm:ss.SSS'Z'

+0

我可以證實這也起作用,並將其切換爲答案,原因是它佔了ms – crockpotveggies

+0

@DeLongey(你無法從日期中獲得微不足道的方式)。如果您必須匹配模式*完全*,你必須*也* setLenient(false)'或它將匹配不精確的模式。 –

0

刪除Z

> sdf = new java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss") 
> println sdf.parse("2008-09-19T19:05:30.000Z") 
Fri Sep 19 19:05:30 EDT 2008 
+0

瞧,工作謝謝! – crockpotveggies

+1

這是一個次優的答案,它依賴於SimpleDateFormat不匹配格式字符串後的任何內容。看到http://stackoverflow.com/questions/8428313/simpledateformat-parsestring-str-didnt-been-throw-when-str-2011-12-12aaaaaa –

+0

@SteveKuo同意,如果OP實際*需要*毫秒...無論如何,這是一個帶有「Date」的痛苦。當然,你還需要'setLenient(false)',否則非精確模式可能仍然匹配。 –