【问题标题】:Making an NSDateFormatter to parse ISO dates制作 NSDateFormatter 来解析 ISO 日期
【发布时间】:2013-05-22 02:46:00
【问题描述】:

我有一个简单的问题,但它让我发疯了。我正在使用 API,我得到一个 JSon 对象,其中一个字段是日期。日期格式如下:2013-05-17T02:00:00.000Z。对于这个日期,我似乎无法正确获取 NSDateformatter。有人愿意帮我一把吗?

如果不清楚,我将 Objective c 用于 iPhone 应用程序。我的目标是在最后得到一个 NSDate 对象。再次感谢您的帮助。

【问题讨论】:

标签: iphone objective-c cocoa-touch nsdate nsdateformatter


【解决方案1】:

这是 ISO 8601 格式之一。用 NSDateFormatter 解析它充其量是很棘手的,这就是我写an NSFormatter subclass specifically for parsing and unparsing any ISO 8601 format的原因。

【讨论】:

    【解决方案2】:

    您会希望获得该字符串的正确格式。 然后你应该能够做这样的事情:

    NSString * dateString = jsonDict[@"dateKey"];
    NSDateFormatter *df = [[NSDateFormatter alloc] init];
    [df setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"]
    NSDate *date = [df dateFromString:dateString];
    

    T 用于将日期与时间分开,Z 指定祖鲁时间。 (https://stackoverflow.com/a/8405125/1074558)

    【讨论】:

    • 不要忘记单引号将 T 和 Z 标识为文字字符而不是特殊格式字符。
    • 年份应该是yyyy,而不是hhhh
    • 因为现在是祖鲁时间,所以时区应该设置为 UTC。
    猜你喜欢
    • 2012-04-20
    • 2013-05-14
    • 1970-01-01
    • 2011-12-17
    • 1970-01-01
    • 2010-12-23
    • 1970-01-01
    • 1970-01-01
    • 2011-05-23
    相关资源
    最近更新 更多