objective-c - 将 Ruby on Rails DateTime 转换为 NSDate 时出现问题

标签 objective-c datetime nsdate

这是为什么...

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/

相关文章:

ios - 在没有全屏的 UIWebView 中播放 Youtube 视频

datetime - 为什么 Coldfusion DateTime 返回奇怪的值?

objective-c - NSDate 格式器

objective-c - Objective-C 中的递归 block 在 ARC 中泄漏

ios - 为唯一日期创建UITableView节

php - 日期时间不节省十分之一

javascript - 在 javascript 中获取另一个时区的时区偏移量而不使用字符串

ios - 日期格式很奇怪

Swift - 如何初始化 NSDate 属性的默认值?

iphone - 从 sqlite 获取图像(使用 FMDatabase 类)