1

すぐに始めましょう。コード スニペットは次のとおりです。

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 Simulator (または iOS 5.1 デバイス) 用にビルドした結果:

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

iPhone 6.0 Simulator (または iOS 6 デバイス) 用にビルドしたときの結果:

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

出力された年の不一致に注意してください (「--」の後)。

iOS 6 では、日付フォーマッタが 3512 年 (現在から 1500 年後) を超える日付から 2000 年を減算することが判明しました。

他の誰かがこれを経験したり、エレガントな回避策を持っていますか?

ありがとう。

4

0 に答える 0