我想按日期格式化程序生成日期
2012-07-12
但它显示为
2012-07-11
我的代码:
NString * today_selected=[NSString stringWithFormat:@"%d%@%d%@%d",year_for_activated,@"-",month_for_activated,@"-",taged]; NSDateFormatter *Df=[[NSDateFormatter alloc]init];
// here year_of_ = 2012和month_of_ac = 7,tag = 12
但它显示2012-07-11而不是12。
[Df setDateFormat:@"YYYY-MM-DD" ];
NSDate *date_selected=[Df dateFromString: today_selected];
NSLog(@"today_selected:%@",date_selected);
但显示2012-01-12
答案 0 :(得分:5)
请阅读说明的documentation
它使用yyyy来指定年份组件。常见的错误是使用 YYYY。 yyyy指定日历年,而YYYY指定年份 (“年度周”),用于ISO年 - 周历。多数情况 案例,yyyy和YYYY产生相同的数字,但它们可能是 不同。通常,您应该使用日历年。
另外,您会注意到这一天是dd
,而不是DD
当您发现这样的问题时,您的第一站应该是文档
答案 1 :(得分:2)
try this:
NString *today_selected=@"2012-07-12";
NSDateFormatter *Df=[[NSDateFormatter alloc]init];
[Df setDateFormat:@"yyyy-MM-dd" ];
NSDate *date_selected=[Df dateFromString: today_selected];
NSLog(@"today_selected:%@",date_selected);
答案 2 :(得分:1)
试试这个获取2012-07-12,这种类型的Formatter:
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd"];
NSDate *now = [[NSDate alloc] init];
NSString *theDate = [dateFormat stringFromDate:now];