Iphone dateFromString在iOS 4.2上返回nil,在3.2上运行良好!

Iphone dateFromString在iOS 4.2上返回nil,在3.2上运行良好!,iphone,nsstring,nsdate,nsdateformatter,ios-4.2,Iphone,Nsstring,Nsdate,Nsdateformatter,Ios 4.2,我正在将服务器返回的字符串转换为NSDate对象以供进一步使用 以下是来自服务器的示例字符串:2011-01-14T16:05:48.555+05:00 并且,我使用[dateFormatter setDateFormat:@“yyyy-MM-dd'T'HH:MM:ss”] 我能够在iOS 3.2上使用dataFromString方法成功地将其转换为NSDate对象(设备和sim都有) 但是,在设备和sim卡上的iOS 4.2上,相同的代码返回nil 我还尝试了多种日期格式模式,例如: [dat

我正在将服务器返回的字符串转换为NSDate对象以供进一步使用

以下是来自服务器的示例字符串:
2011-01-14T16:05:48.555+05:00

并且,我使用
[dateFormatter setDateFormat:@“yyyy-MM-dd'T'HH:MM:ss”]

我能够在iOS 3.2上使用dataFromString方法成功地将其转换为NSDate对象(设备和sim都有)

但是,在设备和sim卡上的iOS 4.2上,相同的代码返回nil

我还尝试了多种日期格式模式,例如:

[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZ"];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZZZZ"];
[dateFormatter setDateFormat:@"YYY-MM-DD'T'HH:mm:ss.fffK"];
但是什么都不管用

我是不是遗漏了什么

编辑:我尝试对输入字符串进行硬编码,在尝试了许多变体之后,以下字符串
2011-01-14T16:05:48.555+0500
“yyyy-MM-dd'T'HH:MM:ss.SSSZ”一起工作

请注意,此字符串与服务器字符串的唯一区别是;时区值中的冒号(:)。我试图找到一种日期模式,在其中我可以在时区中提到冒号,但没有成功


有什么线索吗?

我不知道你的问题的正确答案,但你可以试试这个解决方案:

您可以在服务器返回的字符串中手动删除时区值中的冒号(:),并将此字符串写入新字符串,然后使用“yyyy-MM-dd'T'HH:MM:ss.SSSZ”

源代码:

NSString *stringFromServer=@"2011-01-14T16:05:48.555+05:00";

NSString *str1 = [stringFromServer substringToIndex:26];

NSString *str2 = [stringFromServer substringFromIndex:27];

NSString *result=[NSString stringWithFormat:@"%@%@",str1,str2];
因此,如果这能奏效:

编辑:我尝试硬编码输入字符串,在尝试了许多变体之后,以下字符串2011-01-14T16:05:48.555+0500与“yyy-MM-dd'T'HH:MM:ss.SSSZ”一起工作 大宗报价


然后字符串“result”将与“yyyy-MM-dd'T'HH:MM:ss.SSSZ”一起使用。

我不知道您的问题的正确答案,但您可以尝试以下解决方案:

您可以在服务器返回的字符串中手动删除时区值中的冒号(:),并将此字符串写入新字符串,然后使用“yyyy-MM-dd'T'HH:MM:ss.SSSZ”

源代码:

NSString *stringFromServer=@"2011-01-14T16:05:48.555+05:00";

NSString *str1 = [stringFromServer substringToIndex:26];

NSString *str2 = [stringFromServer substringFromIndex:27];

NSString *result=[NSString stringWithFormat:@"%@%@",str1,str2];
因此,如果这能奏效:

编辑:我尝试硬编码输入字符串,在尝试了许多变体之后,以下字符串2011-01-14T16:05:48.555+0500与“yyy-MM-dd'T'HH:MM:ss.SSSZ”一起工作 大宗报价


然后字符串“result”将与“yyyy-MM-dd'T'HH:MM:ss.SSSZ”一起使用。

请参阅感谢您的提及,它很有帮助!谢谢你的提醒,这很有帮助!是的,这与马丁在评论中所说的相似。到目前为止,这是我找到的唯一有效的解决方案,但我仍在寻找更好的解决方案。是的,这与马丁在评论中所发表的类似。到目前为止,这是我找到的唯一有效解决方案,但我仍在寻找更好的解决方案。