【问题标题】:Get Missing Months from timeInterval? [duplicate]从 timeInterval 获取缺少的月份? [复制]
【发布时间】:2012-10-15 12:16:53
【问题描述】:

可能重复:
Get missing month from timestamp Interval

我正在从服务器接收以秒为单位的时间。然后我使用下面的代码将它们转换为月份。

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

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

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

【问题讨论】:

  • 你能把这堵文字墙格式化成一个问题吗?以下是您可以查看的一些提示:stackoverflow.com/editing-help
  • NSDateFormatter * dateFormatter=[[[NSDateFormatter alloc]init]autorelease]; [dateFormatter setDateFormat:@"MMM"]; dateFormatter stringFromDate:[NSDate dateWithTimeIntervalSince1970:timeStamp]];

标签: iphone ios5 nstimeinterval


【解决方案1】:

作为一种快速而肮脏的解决方案,您可以创建一个包含所有月份的数组,从较晚的月份开始,然后在月份数组中向后循环,直到到达较早的月份。

更健壮,甚至更好的是使用 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];

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多