2016-10-07 1 views
0

Дата всегда ноль, но если я изменяю dateString на любую другую дату, например, 03/01/1975, она работает нормально. Есть идеи?object-c dateFromString возвращает нуль в определенную дату

NSString *dateString = @"05/01/1975";  
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
NSLocale *gbLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"us"]; 
[dateFormatter setLocale:gbLocale]; 
[dateFormatter setDateFormat:@"MM/dd/yyyy"]; 
NSDate *date = [dateFormatter dateFromString:dateString]; 
+1

I tr вы вводите код, который дает 1975-04-30 18:30:00 +0000 в консоли регистрации! – kb920

+0

убедитесь, что dd и MM верны для динамических данных, также отлаживают и печатают строку –

+0

Это всегда показывает ноль:/ –

ответ

1

Попробуйте

NSString *dateString = @"05/01/1975"; 
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setTimeStyle:NSDateFormatterShortStyle]; 
[formatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]]; 
[formatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]]; 
[formatter setDateFormat:@"MM.dd.yyyy"]; 
NSDate *anotherDate = [formatter dateFromString:dateString]; 
NSLog(@"%@",anotherDate); 

Это даст выход как этот

1975-05-01 00:00:00 +0000

1

попробуйте этот код

- (NSDate *)getPickerDateForString:(NSString *)dateString 
{ 
    NSDate * dt; 
    if (!dateFormatter) 
    { 
     dateFormatter = [[NSDateFormatter alloc] init]; 
    } 
    [dateFormatter setDateFormat:@"dd/MM/yyyy"]; 
    dt = [dateFormatter dateFromString:dateString]; 
    return dt; 
} 
+0

Мне не нужен этот формат даты, и это эквивалентно моему коду. –

+0

, когда вы использовали yyyy/MM/dd, он дал null! – kb920

+0

У меня есть код редактирования, который мы попробуем –