根据我的要求格式化日期

时间:2012-07-11 11:31:21

标签: iphone nsdate

我想按日期格式化程序生成日期 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

3 个答案:

答案 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];