【问题标题】:NSDateFormatter dateFromString sometimes returns nullNSDateFormatter dateFromString 有时返回 null
【发布时间】:2013-11-23 18:08:22
【问题描述】:

在我的应用程序中,我使用此代码从 NSString 创建 NSDate

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyyMMddhhmmss"];

dateFormatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:[NSTimeZone localTimeZone].secondsFromGMT];
NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [dateFormatter dateFromString:comment.created];

NSLog(@"comment.created %@ dateFromString %@",comment.created, dateFromString);

但是对于某些字符串,它返回 null!

对于输入20131031083130,它返回2013-10-31 04:31:30,对于20131107200617 - (null)

StreetJournal[32054:60b] comment.created 20131031083130 dateFromString 2013-10-31 04:31:30 +0000
StreetJournal[32054:60b] comment.created 20131107200617 dateFromString (null)

为什么?

【问题讨论】:

  • 我猜输入字符串两次都不同。正确的?如果是,请向我们提供输入字符串。
  • @AkshitZaveri 您可以在帖子末尾的日志中看到它。但是为了您的方便,我在上面添加了explonation
  • 很抱歉询问您的意见。我没看到。

标签: null nsstring nsdate nsdateformatter


【解决方案1】:

将您的日期格式更改为 yyyyMMddHHmmss

我不知道“hh”和“HH”之间的区别,但我知道这是正确的做法。我测试过,它也可以工作。

编辑:

据我的经验,'hh' 适用于 12 小时 格式,'HH' 适用于 24 小时 格式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-18
    • 1970-01-01
    相关资源
    最近更新 更多