【问题标题】:NSDate FormattingNSDate 格式化
【发布时间】:2011-09-17 23:12:49
【问题描述】:

我有一个日期字符串如下:“Fri, 17 Jun 2011 19:20:51 PDT”,我需要将其解析为 NSDate 格式。

 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
 [dateFormatter setDateFormat:@"EEE, d MM YYYY HH:mm:ss zzz"];
 NSDate *date = [dateFormatter dateFromString:currentPubDate ];
 [dateFormatter release];

代码似乎不起作用,我不知道为什么。我已经调查了这个问题,但是通过论坛等搜索,似乎找不到答案。我相信这是dateFormatter 的问题。感谢您的帮助

【问题讨论】:

    标签: ios nsstring nsdate nsdateformatter


    【解决方案1】:

    您错误地指定了setDateFormat 字符串。这就是你应该指定的方式:

    [dateFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss zzz"];
    

    YYYY 仅用于某些工业和商业应用的“星期日期”格式。如下所示:YYYY-Www-D 其中 2011-W1-3 相当于 2011 年第一周的第三天。

    Apple 文档指出,使用 YYYY 而不是 yyyy 是一个常见错误:Fixed Formats

    【讨论】:

      【解决方案2】:

      尝试用 MMM 替换 MM——我没有方便的 XCode 来验证,但通常“M”或“MM”将指数字月份。在您的情况下,因为您有“Jun”,所以您应该尝试 MMM。

      【讨论】:

        【解决方案3】:

        您还可以执行以下操作:

        NSDateFormatter 具有以下属性:dateStyle & timeStyle

        您可以将这些设置为NSDateFormatterNoStyle、NSDateFormatterShortStyle、NSDateFormatterMediumStyle、NSDateFormatterLongStyle、NSDateFormatterFullStyle

        设置好这些后,您可以使用stringFromDate: 来获得格式良好的字符串。

        查看文档页面,了解每种样式的时间和日期。

        https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSDateFormatter_Class/Reference/Reference.html#//apple_ref/c/tdef/NSDateFormatterStyle

        干杯!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-06-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多