Edited at

NSDateFormatterで日にちが一週間ずれる

More than 1 year has passed since last update.

NSDateFormatter *fmt = [NSDateFormatter new];

[fmt setDateFormat:@"YYYY-01-01 00:00:00 0000"];
[fmt setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
NSString *dateStr = [fmt stringFromDate:[NSDate date]];
NSDate *minDate = [fmt dateFromString:dateStr];

とした際にminDatが一週間ずれることがあった。


解決策

YYYY を yyyyに変更

Y(大文字)はその週の年、つまり1月1日が週の後半(厳密には木曜日以降)だったら、その週は前年の週と見なされる。