我试图解析包含一个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]”“' –