【问题标题】:NSDate and NSDateFormatter magicNSDate 和 NSDateFormatter 魔法
【发布时间】:2011-11-15 10:49:07
【问题描述】:

在将日期的 NSString 值转换为 NSDate 实例时遇到了奇怪的问题。看起来伟大的哈利波特访问了我的代码。

我从服务器接收日期字符串为 24 日期格式:“2011-11-15 11:44”。 我的 iPhone 在设置中有第 12 个日期格式。当我尝试将该字符串转换为 NSDate 时,我可以看到日期值等于 NIL。如果我将设置切换为 24 日期格式,它工作正常。这是我的代码:

NSString * sDate = @"2011-11-15 11:44";
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd HH:mm"];
[df setTimeZone:[NSTimeZone localTimeZone]];
NSDate * pDate = [df dateFromString:sDate];

因此,pDate 为 NIL。但是,如果我在 iPod Touch 上运行此代码,我会看到 12 位格式的错误日期值,而不是 NIL。我无法理解一个问题。你能帮帮我吗?

谢谢。

【问题讨论】:

  • 如果你注释行会发生什么 [df setTimeZone:[NSTimeZone localTimeZone]]; ?
  • 我购买了特殊的魔法装备,并使用 NSCalendar 和 NSDateComponents 创建了日期。 :) 这是一个糟糕的技巧,但它有效。

标签: objective-c ios nsdate nsdateformatter


【解决方案1】:

我查看了 Apple 的文档,您必须将语言环境设置为 en_US_POSIX。您可以在此链接中查看更多信息:

http://developer.apple.com/library/ios/#qa/qa1480/_index.html

【讨论】:

  • 有趣的事情。会试试的。
猜你喜欢
  • 1970-01-01
  • 2014-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多