NSDate与TimeZone偏移量转换为字符串

moh*_*945 2 nsdateformatter ios swift

我有以下代码

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())
Run Code Online (Sandbox Code Playgroud)

它以以下格式生成日期: 2015-08-06T15:44:49 + 0000 但我希望它采用以下格式2015-08-06T15:44:49 + 00:00

如您所见,偏移量需要为b +00:00而不是+0000

Leo*_*bus 6

您需要使用“ 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"
Run Code Online (Sandbox Code Playgroud)

如果您需要一些参考,可以使用以下方法:

在此处输入图片说明