将UTC字符串转换为NSDate

Ash*_*wal 2 objective-c ios

我有一个服务器以UTC格式返回的日期时间字符串:2015-04-21T00:54:46.469Z

我试图将其转换为NSDate.代码是:

NSString *dateString = @"2015-04-21T00:54:46.469Z";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-mm-DDThh:mm:ss.sZ"];
NSDate *locationDate = [dateFormatter dateFromString:dateString];
Run Code Online (Sandbox Code Playgroud)

locationDate执行此操作后,值为nil

che*_*gpu 6

你应该用

[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"];
Run Code Online (Sandbox Code Playgroud)

要么

[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZ"];
Run Code Online (Sandbox Code Playgroud)

无论如何,T必须在引号中.这似乎是Apple的一个错误.

  • 不。不要使用第一个选项。不要转义格式字符串中的“Z”。你会得到错误的结果。 (2认同)