如何将String转换为NSDate? [英] How to convert String to NSDate?

查看:96
本文介绍了如何将String转换为NSDate?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

每当有新的远程通知时,我都会收到字符串。我正在使用解析来查看我的后端。我检索的字符串来自createdAt列。

I have string that I received whenever there is new remote notifications.I'm using parse for my Backend. And String that I retrieved come from "createdAt" column.

我尝试过以下代码:

    var ca = "2015-07-03T03:16:17.220Z"
    var dateFormater : NSDateFormatter = NSDateFormatter()
    dateFormater.dateFormat = "yyyy-MM-dd'T'HH:mm:ss'Z'"
    let date = dateFormater.dateFromString(ca)

    println(date)

但println给我零,我认为我的日期格式有问题。我该如何解决这个问题?

But the println is giving me nil, I think there is something wrong with my date format. How can I fix this?

推荐答案

你错过了毫秒。因此:

dateFormater.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"

注意,从日期字符串转换为 NSDate ,你不应该引用 Z 。如果引用 Z ,它将匹配文字 Z 字符,但不会正确反映此日期字符串实际上是Zulu / GMT / UTC。

Note, when converting from the date string to a NSDate, you shouldn't quote the Z. If you quote the Z, it will match the literal Z character, but won't correctly reflect that this date string is actually Zulu/GMT/UTC.

如果你想创建另一种方式的格式化器,转换 NSDate 字符串对象,在这种情况下你应引用 Z ,但在这种情况下你必须记得明确设置时区:

If you want to create formatter that also goes the other way, converting NSDate objects to strings, in that case you should quote the Z, but in that case you must remember to explicitly set the timezone:

dateFormater.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
dateFormater.timeZone = NSTimeZone(forSecondsFromGMT: 0)






顺便说一下,不要忘记按区域设置 /qa1480/_index.htmlrel =nofollow> Apple Technical Q& A 1480


By the way, don't forget to set the locale as per Apple Technical Q&A 1480.

dateFormater.locale = NSLocale(localeIdentifier: "en_US_POSIX")

这篇关于如何将String转换为NSDate?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆