NSDate格式

时间:2011-06-18 22:46:32

标签: ios nsstring nsdate nsdateformatter

我有一个日期字符串如下:“星期五,2011年6月17日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的一个问题。谢谢你的帮助

3 个答案:

答案 0 :(得分:4)

尝试用MMM替换MM - 我没有XCode方便验证,但通常“M”或“MM”将指数字月份。在你的情况下你有“君”,你应该尝试MMM。

答案 1 :(得分:4)

您错误地指定了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 :(得分:0)

您还可以执行以下操作:

NSDateFormatter具有以下属性:dateStyle& timeStyle

您可以将这些设置为NSDateFormatterNoStyleNSDateFormatterShortStyleNSDateFormatterMediumStyleNSDateFormatterLongStyleNSDateFormatterFullStyle

设置完成后,您可以使用stringFromDate:来获取格式正确的字符串。

查看每个样式的文档页面对时间和日期的影响。

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

干杯!