Objective c 从NSString格式化日期

Objective c 从NSString格式化日期,objective-c,Objective C,我正在创建一个NSDateCategory来格式化日期,但它总是返回null,有什么想法吗 2011-06-05T16:55:00Z 我假设它应该是dateFormatter setDateFormat:@“yyyy-MM-dd+hh:MM:ss”](mm表示分钟)您的字符串和格式不匹配。在日期字符串中使用“T”分隔时间,并以时区指示器结束。您的格式使用“+”分隔时间,并且没有时区指示器。您还使用“MM”表示分钟,应该是“MM” 有关格式化程序字符串中使用的符号,请参阅。这是一项多么艰巨的任务!

我正在创建一个NSDateCategory来格式化日期,但它总是返回null,有什么想法吗

2011-06-05T16:55:00Z


我假设它应该是
dateFormatter setDateFormat:@“yyyy-MM-dd+hh:MM:ss”]mm表示分钟)

您的字符串和格式不匹配。在日期字符串中使用“T”分隔时间,并以时区指示器结束。您的格式使用“+”分隔时间,并且没有时区指示器。您还使用“MM”表示分钟,应该是“MM”


有关格式化程序字符串中使用的符号,请参阅。

这是一项多么艰巨的任务!我终于明白了。在你担心格式化之前,需要先设置时区

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss'Z'"];
    [dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
    NSDate *result = [dateFormatter dateFromString:dateString];
    [dateFormatter release];

你可以发布你测试的日期字符串吗?请看问题的第二行关于日期字符串oops-。。不管怎样,我还是贴了一个答案。我想我是对的。您试图解析带有55个月的日期。Z在UTS#35中不是正确的时区。它代表UTC(“祖鲁时间”)。您可以对其进行替换,将“Z”替换为“UTC”,或者如果它始终存在,则可以使用文字“Z”。yyyy-MM-dd'HH:MM:ss'Z'。请注意文字周围的单引号以及HH而不是HH的用法。请务必阅读参考表。
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss'Z'"];
    [dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
    NSDate *result = [dateFormatter dateFromString:dateString];
    [dateFormatter release];