iOS6中NSDateFormatter的潜在错误。有人遇到过这种情况么?

时间:2012-09-26 20:48:26

标签: objective-c date ios6 nsdateformatter

我们会直截了当。这是代码片段:

NSString *dateString = @"4001-01-01T00:00:00.000Z";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"UTC"];
[dateFormatter setTimeZone:timeZone];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"];

NSDate *date = [dateFormatter dateFromString:dateString];
NSLog(@"%@ -- %@", dateString, date);

为iPhone 5.1模拟器(或iOS 5.1设备)构建时的结果:

4001-01-01T00:00:00.000Z -- 4001-01-01 00:00:00 +0000

为iPhone 6.0模拟器(或iOS 6设备)构建时的结果:

4001-01-01T00:00:00.000Z -- 2001-01-01 00:00:00 +0000

请注意输出年份中的差异(在“ - ”之后)。

我们已经确定,在iOS 6中,日期格式化程序从3512年(1500年后)的任何日期减去2000年。

有没有其他人经历过这个和/或有一个优雅的解决方法?

感谢。

0 个答案:

没有答案