0

Look at this code:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"YYYY-MM-dd";
formatter.timeZone = [NSTimeZone timeZoneWithName:@"UTC"];
NSString *dateString = [formatter stringFromDate:date];

Log:

Printing description of date:
2017-12-31 11:04:07 +0000
Printing description of dateString:
2018-12-31

How did I get 2018???

BTW, this code works perfectly for every other date. It only behaves weird on 2017-12-31...

UPDATE:

Trying to use system time zone, as suggested in comment:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"YYYY-MM-dd";
formatter.timeZone = [NSTimeZone systemTimeZone];
NSString *dateString = [formatter stringFromDate:date];

Log:

Printing description of date:
2017-12-31 11:27:04 +0000
Printing description of dateString:
2018-12-31
Gal
  • 1,582
  • 2
  • 14
  • 30

0 Answers0