我从服务器那里得到一个dateFormat:
2016-09-04T17:44:44+02:00
所以我写了一个dateformatter:
private static let jsonDateFormatter: NSDateFormatter = {
let fmt = NSDateFormatter()
fmt.dateFormat = "yyyy-MM-dd'T'HH:mm:ss+SSS"
return fmt
}()
仍然存在问题,因为当我执行jsonDateFormatter.dateFromString
时,它返回nil,因此dateFormat必须是错误的。
我没有看到问题。
答案 0 :(得分:2)
根据Apple Docs上提供的文档here
此类日期的正确格式化程序将为
yyyy-MM-dd'T'HH:mm:ssZZZZZ
在给出示例中使用
let RFC3339DateFormatter = NSDateFormatter()
RFC3339DateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
RFC3339DateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ"
//RFC3339DateFormatter.timeZone = NSTimeZone(forSecondsFromGMT: 0)
/* 39 minutes and 57 seconds after the 16th hour of December 19th, 1996 with an offset of -08:00 from UTC (Pacific Standard Time) */
let string = "1996-12-19T16:39:57-08:00"
let date = RFC3339DateFormatter.dateFromString(string)
答案 1 :(得分:0)
错误的格式字符串,另外您还应该阅读Apple的Q&A on parsing internet date:
private static let jsonDateFormatter: NSDateFormatter = {
let fmt = NSDateFormatter()
fmt.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ"
fmt.locale = NSLocale(localeIdentifier: "en_US_POSIX")
return fmt
}()