iOS NSTimeZone/NSCalendar Semi-Final Germany vs Brazil
A somewhat obscure and nasty bug in iOS:
- (void) testGermany { NSDate *date; NSDateFormatter *formatter; formatter = [[NSDateFormatter new] autorelease]; [formatter setDateFormat:@"yyyy-MM-dd"]; // Start DST: Sonntag, 30. März 2014 // 1 hour forward date = [formatter dateFromString:@"2014-3-31"]; NSParameterAssert( date); date = [formatter dateFromString:@"2014-3-30"]; NSParameterAssert( date); } - (void) testBrazil { NSDate *date; NSDateFormatter *formatter; formatter = [[NSDateFormatter new] autorelease]; [formatter setDateFormat:@"yyyy-MM-dd"]; // Start DST: Sonntag, 19. Oktober 2014 // 1 hour forward date = [formatter dateFromString:@"2014-10-20"]; NSParameterAssert( date); date = [formatter dateFromString:@"2014-10-19"]; NSParameterAssert( date); // will crash when played in Brasilia-Normalzeit } - (void) viewDidLoad { [super viewDidLoad]; [self testGermany]; [self testBrazil]; }
Post a comment
All comments are held for moderation; basic HTML formatting accepted.