Possible Duplicate:
NSDateFormatter not giving me correct
I am using a NSDate which I convert to only the date using the following technique:
+ (NSDate *) dateOnly:(NSDate *)date
{
long time = [date timeIntervalSinceReferenceDate];
long timeMod = time % kNumSecondsInDay;
NSTimeInterval newTime = time - timeMod;
return [[NSDate alloc] initWithTimeIntervalSinceReferenceDate:newTime];
}
This is giving me expected results:
NSLog(@"Due Date:%@", _dueDate);
–> Due Date: 2012-11-21 00:00:00 +0000
However, when I use the date formatter, it gives me one day previous:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateStyle:NSDateFormatterShortStyle];
NSString *result = [formatter stringFromDate:_dueDate];
NSLog(@"Result: %@", result);
–> Result: 11/20/12
What gives?
Time zone. The date is midnight on 11/21, UTC; if your time zone is behind UTC, then it’ll be 11/20.