【问题标题】:NSDateFormatter to date [closed]迄今为止的 NSDateFormatter [关闭]
【发布时间】:2013-05-31 10:14:57
【问题描述】:

您好,我在将 NSString 解析为 NSDate 时遇到了奇怪的问题:“2013-05-31T11:56:07+0200”,我试过了:

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

但总是返回 nil。

【问题讨论】:

  • 显示你的整个代码。使用此 dateFormat 它应该可以工作。
  • 还有其他问题。你确定你的日期格式化程序甚至存在吗?

标签: ios nsstring nsdate nsdateformatter


【解决方案1】:

从为 iOS 5.1 及更高版本指定的 unicode 日期格式中,这些是时区格式

我已经验证了这一点,它适用于输出 2013-05-31 09:56:07 +0000

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"];
NSDate *date  = [dateFormatter dateFromString:@"2013-05-31T11:56:07+0200"];
NSLog(@"%@",date);

【讨论】:

  • 嗯再次返回nil:(
  • @user2429398 您能否将整个代码发布到您的问题中的转换?
  • 为什么末尾有额外的' 字符??
  • @HotLicks 这是一个错字,已更正。
【解决方案2】:

也许对你有帮助

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd"];

NSDateFormatter *timeFormat = [[NSDateFormatter alloc] init];
[timeFormat setDateFormat:@"HH:mm:ss"];

NSDate *now = [[NSDate alloc] init];

NSString *theDate = [dateFormat stringFromDate:now];
NSString *theTime = [timeFormat stringFromDate:now];

NSLog(@"\n"
      "theDate: |%@| \n"
      "theTime: |%@| \n"
      , theDate, theTime);

【讨论】:

    猜你喜欢
    • 2012-04-07
    • 2015-01-09
    • 2017-08-14
    • 1970-01-01
    • 2014-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-07
    相关资源
    最近更新 更多