在iOS上将NSString转换为NSDate的正确方法?

时间:2011-07-31 21:57:03

标签: objective-c ios xcode nsdate

我一直在使用此方法将常规NSString对象转换为NSDate,但尝试向Apple提交更新并被拒绝。在iOS中执行此操作的另一种方法是什么?

NSString *date_str = @"2011-08-12T12:20:00Z";
NSDate *the_date = [NSDate dateWithNaturalLanguageString:date_str locale:[[NSUserDefaults standardUserDefaults] dictionaryRepresentation]];

提前致谢!

1 个答案:

答案 0 :(得分:9)

使用NSDateFormatter。简要示例如下:

...
NSString* dateString = "2011-08-12T12:20:00Z";
NSDateFormatter* fmt = [NSDateFormatter new];
[fmt setDateFormat:"yyyy-MM-dd'T'HH:mm:ss'Z'"];
NSDate* date = [fmt dateFromString:dateString];
[fmt release];
...

请注意,根据Unicode Technical Standard #35NSDateFormatter本身不支持单字母时区标识符(即Zulu时间为Z)。