从时间戳间隔中获取缺少的月份

时间:2012-10-15 11:21:21

标签: iphone ios5 datetime ios4

我在几秒钟内从服务器接收时间,然后使用此代码将tjose秒转换为月份:

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)

您可以将两个日期之间的差异作为时间戳进行比较

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

NSTimeInterval month = 60.0 * 60.0 * 24.0 * 31.0; //seconds * minutes * hours * days ~ month
NSTimeInterval tempTimestamp = oldTimestamp;
while(tempTimestamp - newTimestamp) > month){
    //more than a month difference -> add a month
    NSString* tempMonthName = [dateFormatter stringFromDate:[NSDate dateWithTimeIntervalSince1970:tempTimestamp]];
    if(![monthName isEqualTo:newMonthName]){
        //do whatever you need with the additional month name...
    }
    tempTimestamp += month;
}

希望它会有所帮助。

干杯...