-2

我从服务器接收时间(以秒为单位),然后使用以下代码将 tjose 秒转换为月份:

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

问题是我不是每个月都从服务器获取,就像我第一次获取 Jan 然后第二次获取 Apr 从服务器获取但我需要在我的 iPhone 屏幕上显示 2 月和 3 月(缺少月份)(服务器人员无法更改他们的代码,所以我必须在最后做)。
谁能建议我如何才能错过几个月。
同样的问题有时我会从服务器获得 11 月和 2 月,但我也必须显示 12 月和 1 月
。任何帮助将不胜感激!

4

1 回答 1

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;
}

希望它会有所帮助。

干杯...

于 2012-10-15T12:38:55.070 回答