如何将NSString转换为有效的NSDate(iOS)

时间:2012-02-17 14:57:38

标签: objective-c ios nsstring nsdate

我正在以“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的正确方法是什么?

3 个答案:

答案 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];