【问题标题】:NSDateFormatter dateFromString: returns nil on specific device [duplicate]NSDateFormatter dateFromString:在特定设备上返回 nil [重复]
【发布时间】:2014-07-01 04:29:35
【问题描述】:

我有一个使用 NSDateFormatter 以下列方式解析字符串日期的应用:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd/MM/yyyy HH:mm"];
NSDate *date = [dateFormatter dateFromString:dateString];

if( !date )
    NSLog(@"Cannot parse date: %@", dateString);

这适用于我们所有的测试设备,但在单个客户端设备上失败。 dateString 的值为"25/04/2014 17:22"

什么会导致这个失败?

【问题讨论】:

  • 客户端时间戳与您的 .我认为这是问题。
  • 代码是正确的,但是您检查过您的客户是否收到了dateString
  • 两者的 dateString 相同,已通过使用日志文件输出解析失败来确认这一点。
  • 未设置区域设置,但我们没有使用 EEE 或任何特定区域设置。它只是使用指定的日期格式。

标签: ios iphone nsdate


【解决方案1】:

这台设备有可能设置了 12 小时时间格式吗?如果是这样,这个答案可能会有所帮助: NSDateFormatter in 12-hour mode

【讨论】:

  • 一些 POSIX 语言环境可能会有用,不受用户设置的影响。
  • 我将尝试设置语言环境,看看这是否会有所作为。故障设备上的时间设置为 12 小时,但日期格式不应受此影响,因为我们在不依赖系统区域设置的情况下明确设置格式。此外,它也可以在设置为 12 小时的模拟器上完美运行。如果可行,将试一试并接受此答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-18
  • 1970-01-01
  • 2020-01-31
相关资源
最近更新 更多