Ios NSDate为带时区偏移的字符串
我有以下代码Ios NSDate为带时区偏移的字符串,ios,swift,nsdateformatter,Ios,Swift,Nsdateformatter,我有以下代码 let dateFormatter = NSDateFormatter() dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ" dateFormatter.calendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian) dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
dateFormatter.calendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)
dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
dateFormatter.timeZone = NSTimeZone(forSecondsFromGMT: 0)
dateFormatter.stringFromDate(NSDate())
它以以下格式生成日期:
2015-08-06T15:44:49+0000
但我希望它的格式如下2015-08-06T15:44:49+00:00
如您所见,偏移量需要b+00:00而不是+0000您需要使用“xxx”而不是“Z”
编辑/更新Swift 3或更高版本:
let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
dateFormatter.calendar = Calendar(identifier: .gregorian)
dateFormatter.timeZone = TimeZone(secondsFromGMT: 0)
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssxxx"
dateFormatter.string(from: Date()) // "2019-03-22T14:36:07+00:00"
如果您需要一些参考资料,您可以使用:
试着用“ZZZZZ”(五次)代替“Z”,这就是我得到的答案。“2015-08-06T16:00:39Z”是的,就是这样。非常感谢。