我正在以“2012-02-17 14:21:30 +0000”的形式将一个字符串从javascript传递给Objective-C。 我的代码如下:
NSString *firingDate = [_parameters objectForKey:@"fire"];
NSDate *notificationDate = [NSDate dateWithString:firingDate];
问题是我最终读取了OS X引用而不是iOS文档(doh!),所以这会引发警告,因为iOS中不存在dateWithString。从理论上讲,我认为这根本不应该起作用,但确实如此,尽管有这种警告。
将字符串转换为NSDate的正确方法是什么?
答案 0 :(得分:3)
正确的方法是使用NSDateFormatter
作为工厂从字符串创建日期(反之亦然)。
答案 1 :(得分:2)
试试这个:
NSString *firingDate = [_parameters objectForKey:@"fire"];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSDate *notificationDate = [dateFormatter dateFromString:firingDate];
查看reference以解析来自多个地区的日期。
完成后不要忘记释放格式化程序。
答案 2 :(得分:2)
尝试:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"YYYY-MM-dd HH:mm:ss Z";
NSDate *notificationDate = [formatter dateFromString:firingDate];