2012-03-28 11 views
2

Я пытаюсь преобразовать дату в формате строки в NSDate, однако результат, кажется, вычитает час с момента времени. Любые идеи почему?Преобразование строки на сегодняшний день теряет час

-(NSDate *) convertStringToDate:(NSString *)theString { 

    //init formatter 
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 

    //setup the formatter 
    [dateFormat setDateFormat:@"dd-MM-yyyy HH:mm"]; 
    [dateFormat setTimeZone:[NSTimeZone localTimeZone]]; 

    //cast the date from the string 
    NSDate *date = [dateFormat dateFromString:theString]; 


    [dateFormat release]; 

    return date;  
} 

это тестовый вызов:

NSDate *testDate = [self convertStringToDate:@"28-03-2012 11:46"];  
NSLog(@"converted test date - %@", testDate); 

я получить выход (который за час до того времени я, указанный в качестве аргумента):

converted test date - 2012-03-28 10:46:00 +0000 

любая помощь, как я изменение часового пояса будет оценено по достоинству.

ответ

1

Вы видите на один час меньше своего часового пояса, вам нужно изменить его, когда вы получите дату.

DateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    dateFormatter.dateFormat = @"yyyy-MM-dd'T'HH:mm"; 

    NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"]; 
    [dateFormatter setTimeZone:gmt]; 
    NSString *timeStamp = [dateFormatter stringFromDate:[NSDate date]]; 
    [dateFormatter release]; 
4

Когда вы NSLogNSDate, он не отображается в вашем часовом поясе. Он отображается в GMT. Ваш часовой пояс в настоящее время на 1 час раньше GMT ​​(возможно, из-за дневного сбережения).

Чтобы преобразовать дату в строке по отношению к вашей локальной временной зоне, вы хотите использовать дату форматировщик (часовой пояс для форматирования даты будет установлен на локальный часовой пояс по умолчанию):

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
dateFormatter.dateFormat = @"yyyy-MM-dd'T'HH:mm"; 
NSLog(@"converted test date - %@", [dateFormatter stringFromDate:testDate]); 
Смежные вопросы