dat 转换错误 IOS

Error in dat conversion IOS

我正在使用UIDatePicker获取一个人的出生日期并以January 19, 2012格式显示。我正在使用以下函数将日期选择器返回的日期转换为字符串格式:

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

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

它工作正常,我正在将正确的日期转换为字符串。现在为了调用网络服务来保存这个数据,我再次使用相同的日期格式化程序格式将这个字符串转换为数据,如下所示:

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

但是现在,如果我选择的日期是October 18, 2006 上面的函数returns日期为2005-12-24 18:30:00 +0000,使用第一个转换为字符串时是December 25, 2005功能。即使我使用相同的 dat 格式化程序,为什么在不同的情况下会发生这种情况?

不要使用YYYY格式。请改用 yyyy

所以正确的日期格式看起来像 [formater setDateFormat:@"MMMM dd, yyyy"];

那是你的错误。