【问题标题】:String date to NSDate with 2 different string data使用 2 个不同的字符串数据将日期字符串转换为 NSDate
【发布时间】:2015-03-06 09:54:30
【问题描述】:

我正在使用一个向我发送 2 种日期类型的 API(是的,这太糟糕了......)。到目前为止,我正在处理"2015-03-05T23:18:13+00:00""2015-03-05T23:18:17Z",我还没有成功地将它们转换为正确的NSDate这是我的尝试:

var date = NSDateFormatter()
var time = "2015-03-05T23:18:17Z"
date.dateFormat = "yyyy-MM-dd'T'HH:mm:ss'Z'"
date.dateFromString(time)

var date = NSDateFormatter()
var time ="2015-03-05T23:18:13+00:00"
date.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SS:SS"
date.dateFromString(time)

您可以想象,两者都不起作用。你能帮助我吗 ?有什么合适的方法来解析这个吗?

【问题讨论】:

  • 24h 格式,至少“HH”。

标签: ios objective-c macos swift


【解决方案1】:
var fmt = NSDateFormatter()
fmt.locale = NSLocale(localeIdentifier: "en_US_POSIX")
fmt.dateFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ssZZZZZ"

for time in ["2015-03-05T23:18:17Z", "2015-03-05T23:18:13+00:00"] {
    if let date = fmt.dateFromString(time) {
        println(date)
    }
}

ZZZZZ 可以同时处理Z+00:00 格式。至于en_US_POSIX,见the document

【讨论】:

    【解决方案2】:

    第一:

     date.dateFormat = "yyyy-MM-dd'T'HH:mm:ss'Z'"
    

    第二个:

     date.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ'"
    

    【讨论】:

    • 感谢您的回答。不幸的是,没有人在我的Playground上工作
    • 在模拟器中工作。 2015-03-06 11:07:40.794 HEM[6400:75908] 版本日期:2015-03-05 23:18:13 +0000
    猜你喜欢
    • 1970-01-01
    • 2014-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-17
    • 2014-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多