我試圖解析包含一個DateTime不是從喬達日期時間
def parseDateTime(str : String) : DateTime = {
//need to parse date time of this format
//2015-05-22T05:10:00.305308666Z
DateTime.parse(str,DateTimeFormat.forPattern(dateTimePattern))
}
def dateTimePattern = "yyyy-MM-dd'T'HH:mm:ss.SSSSSSSSSZ"
這裏串解析一個小時是我測試的情況下試圖解析日期時間
"MarshallerUtil" must "parse a date time correctly from blockcypher" in {
val str = "2015-05-22T05:10:00.305308666Z"
val dateTime = parseDateTime(str)
dateTime.getYear must be (2015)
dateTime.getMonthOfYear must be (DateTimeConstants.MAY)
dateTime.getDayOfMonth must be (22)
dateTime.getHourOfDay must be (5)
dateTime.getMinuteOfHour must be (10)
}
和它沒有得到正確的小時
[info] - must parse a date time correctly from blockcypher *** FAILED ***
[info] 0 was not equal to 5 (MarshallerUtilTest.scala:17)
我的模式有什麼不正確?
首先,你應該把Z放在撇號內。 「yyyy-MM-dd'T'HH:mm:ss.SSSSSSSSS'Z'」 – znurgl
** Z **用於日期時間格式的時區,其中as ** T **用作日期之間的分隔符和時間。雖然上面解決了你的問題,但你應該注意到** Z **是用於時區的,你應該確保你不會錯誤地解析日期字符串。 – James
@JavaAnto對不起,我刪除了我的評論,因爲我想我遇到了你正在談論的確切問題。另一個測試案例沒有說'...「5-05-22T05:10:00.305 [-05:00]」不等於「... 5-05-22T05:10:00.305 [308666Z]」「' –