【问题标题】:NSDateFormatter returns nil with format YYYY-MM-ddTHH:mm:ssZNSDateFormatter 返回 nil,格式为 YYYY-MM-ddTHH:mm:ssZ
【发布时间】:2014-05-27 20:46:01
【问题描述】:

我正在尝试使用NSDateFormatter 从具有以下格式“YYYY-MM-ddTHH:mm:ssZ”的字符串中获取NSDateNSDateFormatter 总是返回 nil。以下是我尝试这样做的方法:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"YYYY'-'MM'-'dd'T'HH':'mm':'ss'Z'"];
NSDate *dateFromString = [dateFormatter dateFromString:@"2013-08-09T18:30:00+02:00"];

【问题讨论】:

  • 提示:日期字符串不以文字“Z”结尾。 - 'YYYY' 应该是 'yyyy'。
  • 我不确定您是否需要转义字符,例如: - in '' 标记
  • 提示:咨询date format string spec

标签: objective-c datetime nsdate nsdateformatter


【解决方案1】:

那将是一个更好的格式化程序。

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

【讨论】:

  • 完美非常感谢@holex
【解决方案2】:

你的日期格式字符串应该如下:

@"yyyy'-'MM'-'dd'T'HH':'mm':'ssZ"

注意小写的'yyyy'。大写的 Y 表示基于“一年中的一周”的日历。

请参阅此答案:Difference between 'YYYY' and 'yyyy' in NSDateFormatter 和 Unicode 标准了解更多信息:http://www.unicode.org/reports/tr35/tr35-19.html#Date_Format_Patterns

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-28
    • 1970-01-01
    • 2014-06-07
    • 1970-01-01
    • 1970-01-01
    • 2017-02-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多