2012-02-17 64 views
0

我以“2012-02-17 14:21:30 +0000”的形式将字符串从javascript传递到Objective-C。 我的代码如下:我如何将NSString转换为有效的NSDate(iOS)

NSString *firingDate = [_parameters objectForKey:@"fire"]; 
NSDate *notificationDate = [NSDate dateWithString:firingDate]; 

的问题是,我结束了读OS X参考,而不是iOS的文档(!DOH),从而dateWithString不存在于iOS的,这将引发一个警告。从理论上讲,我认为这不应该起作用,但它确实存在,虽然有这种警告。

什么是正确的方式来将字符串转换为NSDate?

+0

可能重复(http://stackoverflow.com/questions/1353081/nsstring-to-nsdate) – DarkDust 2012-02-17 15:02:48

回答

2

尝试:[的NSString的NSDate]的

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
formatter.dateFormat = @"YYYY-MM-dd HH:mm:ss Z"; 
NSDate *notificationDate = [formatter dateFromString:firingDate]; 
+0

我认为日期格式应为“YYYY- MM-dd HH:mm:ss Z“(那是什么对我有用) – AlBeebe 2012-03-24 23:42:09

3

正确的方法是使用NSDateFormatter作为工厂从字符串创建日期(反之亦然)。解析来自多个区域的日期

NSString *firingDate = [_parameters objectForKey:@"fire"]; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
NSDate *notificationDate = [dateFormatter dateFromString:firingDate]; 

退房的reference

2

试试这个。

完成后不要忘记释放格式化程序。