我有一个通过 web 服务调用接收数据的 iOS 应用程序。然后一切正常,没有任何警告,应用程序开始崩溃。我已将其追溯到格式化日期时间值的行。Web 服务最初返回的日期值如下:
yyyy-MM-dd'T'HH:mm:ss.sssz
然后,在没有警告的情况下,日期格式更改为:
yyyy-MM-dd'T'HH:mm:ss
并导致异常。我已经纠正了这个问题,但是,Web 服务提供了来自全国数千个报告时间敏感数据的站点的数据。因此,我不能保证某些 Web 服务调用仍不会返回旧的日期格式。
来自 C# 和 Java 背景,我解决这个问题的正常方法是使用 try/catch 块。然而,在异常处理方面,Objective-C 是另一种动物。我不确定如何处理不同的日期格式。这是我当前进行日期时间格式化的代码
-(NSString*)stringDateFormatter:(NSString*)dateToFormat{
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];
//[df setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.sssz"];
[df setTimeZone:[NSTimeZone localTimeZone]];
NSDate *newDateValue = [df dateFromString:dateToFormat];
[df setDateFormat:@"HH:mm"];
NSString *retValue = [df stringFromDate:newDateValue];
return retValue;
}
处理两种不同的日期时间格式的最佳实践是什么?谢谢!五