Nat! bio photo

Nat!

Senior Mull

Twitter Github Twitch

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.

Name:
E-mail: (not published)
Website: