2017-02-17 24 views
-1

Мой код:NSDateFormater stringFromDate к dateFromString вернуть неверную дату

NSString *dateStr = @"03-02-2017";//[responseObject objectForKey:@"event_date"]; 
    NSLog(@"'%@'", dateStr); 
    // Convert string to date object 
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
    NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_HK"]; 
    [dateFormat setLocale:locale]; //To fix the format into something like: 10 Feb 2017, but not: 10 2月 2017 
    [dateFormat setDateFormat:@"dd-MM-YYYY"]; 
    NSDate *date = [dateFormat dateFromString:dateStr]; 
    NSLog(@"'%@'", date); 
    // Convert date object to desired output format 
    [dateFormat setDateFormat:@"dd MMM YYYY"]; 
    dateStr = [dateFormat stringFromDate:date]; 
    NSLog(@"'%@'", dateStr); 

И в журнале он возвращает

'03 -02-2017'

«2016-12-24 16: 00:00 +0000'

'25 Dec 2016'

Кто-нибудь знает, почему это произошло? Я искал в google, что большинство случаев вызывает часовой пояс. Тем не менее, я почти уверен, что речь идет не о timeZone, потому что разница дат слишком велика, но я не могу понять корень этой проблемы.

ответ

1

Я думаю, что ваш формат даты неправильный.

Это должно быть

dd-MM-yyyy