Отклонение от ожидаемого результата при преобразовании NSString в NSDate с использованием NSDateFormatter - PullRequest
0 голосов
/ 22 декабря 2011

Я использую приведенный ниже метод для преобразования NSString в NSDate.

Всегда, когда я создаю NSDate из String, дата на один день отстает от текущего дня, который я указал как часть ввода, а час - 18:30:00 +0000. Почему это отклонение от того, что я предоставил. Я ожидал, что у меня будет та же дата, что я указал, и час, 00:00:00 + 0000

.
+(NSDate*)convertStringToNSDate:(NSString*)string withFormat:(NSString*)format{

    // Convert string to date object
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    //[dateFormat setTimeZone:[NSTimeZone localTimeZone]];
    [dateFormat setDateFormat:format];
    NSDate *date = [dateFormat dateFromString:string];  
    [dateFormat release];
    return date;
}

enter image description here

1 Ответ

2 голосов
/ 22 декабря 2011

Этот вопрос возникает довольно регулярно, но я не смог найти подходящий дубликат (поиск по телефону не помогает).

NSDate представляет определенный момент времени. Когда вы регистрируете значение NSDate, оно отображается в GMT, что на 5,5 часов меньше вашего часового пояса (я полагаю, что Индия). Таким образом, значение является правильным. Если вы вернете эту дату обратно в свой форматер даты, вы снова получите местное время полуночи, так как форматер даты использует ваш местный часовой пояс.

...