数据转换IOS出错

时间:2015-03-20 09:35:51

标签: ios date nsdate nsdateformatter

我正在使用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;    
}

它正常工作,我得到正确的日期转换为字符串。现在,为了调用Web服务来保存这个数据,我再次使用相同的日期格式化程序格式将此字符串转换为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。即使我使用相同的dat格式化程序,为什么会在不同的情况下发生这种情况呢?

1 个答案:

答案 0 :(得分:1)

请勿使用YYYY格式。请改用yyyy

因此,正确的日期格式如[formater setDateFormat:@"MMMM dd, yyyy"];

那是你的错误。