【发布时间】:2015-09-24 12:23:51
【问题描述】:
一天几次,我们的 PHP REST API 记录一个错误,该错误是由格式无效的 ISO8601 日期引起的,该日期来自我们的 iOS 应用程序发送的 GET 请求。有趣的是,大多数电话都很好(例如 2015-07-07T00:00:00+10:00),但我们经常会收到一个奇怪的电话(例如 2015-07-07T12:00:00上午+10:00)。
我认为导致此问题的代码如下:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZZZ"];
NSString *iso8601StringStart = [dateFormatter stringFromDate:self.searchStartTime];
在任何情况下NSDateFormatter 可以以某种方式(错误地)从“yyyy-MM-dd'T'HH:mm:ssZZZZZ”中获取 am/pm,而这显然是意外行为?是否有某些类型的 NSDate 会导致不同的行为?我难住了。给定的日期始终是通过dateFromComponents 创建的。
【问题讨论】:
-
试试这个“yyyy-MM-dd'T'HH:mm:ss a ZZZZZ”来显示上午/下午@Sadurnias
-
@DharmeshDhorajiya 我认为我不够清楚 - 我不是想显示 am/pm,我想弄清楚它如何在没有 ' 的情况下显示 am/pm a' 在格式字符串中。我已经编辑了这个问题以澄清一点。
标签: ios objective-c nsdateformatter