从timeInterval获取缺失的月份?

时间:2012-10-15 12:16:53

标签: iphone ios5 nstimeinterval

  

可能重复:
  Get missing month from timestamp Interval

我正在接收服务器的秒数。然后我使用下面的代码将它们转换成几个月。

NSDateFormatter * dateFormatter=[[[NSDateFormatter alloc]init]autorelease];
[dateFormatter setDateFormat:@"MMM"];
[dateFormatter stringFromDate:[NSDate dateWithTimeIntervalSince1970:timeStamp]];

问题是我每个月都没有从服务器上得到如果我先得到Jan然后第二次从服务器获得4月但我需要在我的iPhone屏幕上显示feb和Mar(缺少月份)(服务器人员)不能改变他们的代码,所以我必须在我的最后)。 任何人都可以建议我怎样才能错过几个月。

同样的问题有时我会从服务器获得11月和2月,但我也必须显示12月和1月。

1 个答案:

答案 0 :(得分:0)

作为一个快速而肮脏的解决方案,您可以只创建所有月份的数组,从月末开始,然后在月份数组中循环,直到您达到前一个月。

更强大,甚至更好,是使用NSCalendar和NSDateComponents,如:

NSDateComponents* dateComponents = [[NSDateComponents alloc]init];
[dateComponents setMonth:1];
NSCalendar* calendar = [NSCalendar currentCalendar];
NSDate* newDate = [calendar dateByAddingComponents:dateComponents toDate:originalDate     options:0];
[dateComponents release];

这会使你的日期增加/减少一个月。