【问题标题】:NSDateFormatter not returning correctlyNSDateFormatter 没有正确返回
【发布时间】:2014-01-27 02:41:22
【问题描述】:

我正在解析一个 XML 文件,并试图将其转换为可在我的 iOS 应用程序中使用的数据。

我有一个名为 elementDate 的 NSMutableString

如果我读入 XML 文件并执行...。

NSLog(@"Read date: %@", elementDate):

我明白了

阅读日期:2013-12-31

这是我所期望的。但我现在需要将其转换为 NSDate

所以我声明了一个 dateFormatter

  NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
    [dateFormatter setCalendar:calendar];
    [dateFormatter setDateFormat:@"yyyy-MM-dd"];

然后我做一个

NSLog(@"Date From String: %@", [dateFormatter dateFromString:elementDate]);

结果是:

字符串的日期:(null)

我缺少什么简单的东西?

【问题讨论】:

  • NSLog(@"%u", [elementDate length]) ; 显示 elementDate 的长度。
  • 嗯,没有必要设置日历,但它应该不会造成任何伤害。正如 Kudo 所建议的那样,日期字符串的任一端都可能附加了一些垃圾。

标签: ios iphone objective-c nsdate nsdateformatter


【解决方案1】:

代码运行良好。无需按照评论者的建议设置日历。我怀疑您在 xml 解析期间在日期字符串中找到了一些空格。试试

NSString *trimmed = [elementDate stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSLog(@"Date From String: %@", [dateFormatter dateFromString:trimmed]);

【讨论】:

  • 是的。就是这样。里面有一个空格字符。非常感谢!!!
  • 是的,XML 值通常带有换行符和制表符,尤其是它们,除非您使用 XML 解析器选项来消除空格。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-11
  • 2012-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多