【问题标题】:Converting UTC string into NSDate将 UTC 字符串转换为 NSDate
【发布时间】:2015-04-21 01:42:24
【问题描述】:

我有一个由服务器以 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];

执行此操作后locationDate的值为nil

【问题讨论】:

标签: ios objective-c


【解决方案1】:

你应该使用

[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"];

[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZ"];

无论如何,T 必须用引号引起来。这似乎是苹果的一个错误。

【讨论】:

  • 没有。不要使用第一个选项。不要转义格式字符串中的Z。你会得到错误的结果。
  • 并且引用T 不是错误。您引用它,因此它被视为文字而不是格式说明符。
  • 同意@rmaddy。想知道为什么我的代码输出错误的日期,这就是原因。
猜你喜欢
  • 2011-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多