Как я могу получить правильную дату? - PullRequest
0 голосов
/ 18 мая 2010

У меня есть время типа NSString. мне интересно получить день, но я нахожу что-то странное.

     NSString *strTime = @"2010-05-14 16:00:01";
 NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
 [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
 NSDate *oldDate = [formatter dateFromString:strTime];

 unsigned int flags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
 NSCalendar* calendar = [NSCalendar currentCalendar];

 NSDateComponents* components = [calendar components:flags fromDate:oldDate];
 int day = [components day];

Когда NSString * strTime = @ "2010-05-14 16:00:01" день равен 15, а когда NSString * strTime = @ "2010-05-14 16:00:00" день равен 14. Я хочу знать, почему?

1 Ответ

2 голосов
/ 18 мая 2010

Вы находитесь в Калифорнии (вероятно), а дата объекта - GMT. Использование NSCalendar означает, что дата будет преобразована из вашей локали в GMT.

...