这是为什么...
NSString *mydate = @"2011-07-20T23:59:00-07:00"
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss'Z'"];
NSLog(@"%@", [[dateFormatter dateFromString:mydate] description]);
...在控制台中返回“(null)”?
最佳答案
@"yyyy-MM-dd'T'HH:mm:ss'Z'"
的日期格式意味着它正在寻找文字 "Z
"字符串末尾的字符。但是,您的字符串是:
@"2011-07-20T23:59:00-07:00"
我在那里没有看到“Z
”,是吗?因此,日期返回为 nil
,因为您的字符串与指定的格式不匹配。
根据Date Formatting Patterns documentation ,您可能正在寻找格式字符串:
@"yyyy-MM-dd'T'HH:mm:ssZZ"
但是,即使 that 也可能不起作用,因为如果您注意到源字符串在时区偏移的小时和分钟之间有一个冒号 (":
") .没有时区说明符可以说明这一点。如果那确实是 ROR 返回日期的格式,那么 ROR 是错误的。
关于objective-c - 将 Ruby on Rails DateTime 转换为 NSDate 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7115258/