【问题标题】:Swift ISO-8601 date formatting with iOS7Swift ISO-8601 日期格式与 iOS7
【发布时间】:2015-05-01 17:47:20
【问题描述】:

我真的需要你们的帮助。以下代码在 Swift Playgound 和任何 iOS8 或 8.1 模拟器中都能正常工作。但是在 iOS7 和 7.1 中,NSDate 对象总是设置为 nil。

对象 dateString 包含一个 JSON 字符串(ISO 8601 格式),例如 2015-02-28T20:15:00+0100 我正在尝试使用以下代码将此日期字符串转换为 NSDate 对象:

let dateFormatter = NSDateFormatter()
dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
dateFormatter.timeZone = NSTimeZone.localTimeZone()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.ZZZ"
if let dateString = (json as NSDictionary).valueForKey("dateAndTime") as? String
{
   let dateObject = dateFormatter.dateFromString(dateString)
}

我的错误在哪里?我越来越糊涂了! 非常感谢

【问题讨论】:

    标签: ios date swift locale


    【解决方案1】:

    问题在于您的时区偏移,您的日期格式不适合。使用以下格式,

    "yyyy-MM-dd'T'HH:mm:ssZZZZZ"
    

    【讨论】:

    • 太棒了。非常感谢。我快疯了。顺便说一句,我仍然不明白为什么 ut 在 iOS8 上运行良好。
    • Y 只能用于 WeekOfYear。
    • 我得到了答案,谢谢。问题出在我使用的“...zzz”格式上。 “...ZZZZZ”工作正常。对于 "...zzz" 格式,dateFromString 总是给出 nil。谢谢大家的帮助。
    猜你喜欢
    • 1970-01-01
    • 2016-03-06
    • 2013-05-22
    • 2017-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-28
    相关资源
    最近更新 更多