2015-03-20 7 views
0

Я использую UIDatePicker, чтобы получить дату рождения человека и отобразить его в формате January 19, 2012. Я использую следующие функции для преобразования даты, возвращаемой выбора даты в формате строки:Ошибка при преобразовании данных IOS

-(NSString*)stringFromDate:(NSDate *)date 
{ 
    NSDateFormatter *formater =[[NSDateFormatter alloc]init]; 
    [formater setDateFormat:@"MMMM dd, YYYY"]; 

    NSString *str = [formater stringFromDate:date]; 
    return str;  
} 

Он работает правильно, и я получаю правильную дату конвертируется в строку. Теперь для вызова веб-службы, чтобы сохранить эту .dat, я снова преобразовать эту строку в Дат, используя тот же формат даты форматирования, как показано ниже:

- (NSDate *)dateFromString:(NSString *)string 
{ 
    NSDateFormatter *formater =[[NSDateFormatter alloc]init]; 
    [formater setDateFormat:@"MMMM dd, YYYY"]; 
    NSDate *date = [formater dateFromString:string]; 
    return date; 
} 

Но теперь, если дата я выбран October 18, 2006 Вышеприведенные функция возвращает дата равна 2005-12-24 18:30:00 +0000, которая равна December 25, 2005 при преобразовании в строку с использованием первой функции. Несмотря на то, что я использую тот же формат, почему это происходит в разных случаях?

ответ

1

Не используйте формат YYYY. Вместо этого используйте yyyy.

Так правильный формат даты выглядит [formater setDateFormat:@"MMMM dd, yyyy"];

Это была ваша ошибка.

+0

Да, это было. Благодарю вас: D –

Смежные вопросы