我正在创建一个格式化日期的NSDateCategory,但它总是返回null,有什么想法吗?
2011-06-05T16:55:00Z
+ (NSDate *)dateFromString:(NSString *)dateString
{
NSLog(@"date string %@", dateString);
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd+hh:MM:ss"];
NSDate *result = [dateFormatter dateFromString:dateString];
[dateFormatter release];
return result;
}
答案 0 :(得分:2)
您的字符串与格式不符。您在日期字符串中使用“T”来分隔时间并以时区指示符结束。您的格式使用“+”分隔时间并且没有时区指示符。您还使用“MM”分钟,这应该是“mm”。
有关格式化程序字符串中使用的符号,请参阅UTS#35。
答案 1 :(得分:2)
多么伟大的使命!终于想通了。在您甚至担心格式化之前,需要设置时区!
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];
答案 2 :(得分:1)
我认为它应该是dateFormatter setDateFormat:@"yyyy-MM-dd+hh:mm:ss"];
( mm 是分钟)