我正在使用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格式化程序,为什么会在不同的情况下发生这种情况呢?
答案 0 :(得分:1)
请勿使用YYYY
格式。请改用yyyy
。
因此,正确的日期格式如[formater setDateFormat:@"MMMM dd, yyyy"];
那是你的错误。