【问题标题】:How can I get the date after one week in iOS programmatically? [duplicate]如何以编程方式在 iOS 中获取一周后的日期? [复制]
【发布时间】:2013-03-12 05:51:10
【问题描述】:

我对 iOS 开发非常陌生。我想知道一周后的日期。

我使用以下代码获取当前日期。

NSDate *currentDateTime = [NSDate date];

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

[dateFormatter setDateFormat:@"EEE,MM-dd-yyyy HH:mm:ss"];

NSString *dateInStringFormated = [dateFormatter stringFromDate:currentDateTime];

NSLog(@"%@", dateInStringFormated);

如果我的当前日期为 2013 年 3 月 12 日,我想获得一周后的日期意味着获得 2013 年 3 月 19 日。

【问题讨论】:

标签: iphone ios dayofweek


【解决方案1】:

使用NSDateComponents:

NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *comps = [NSDateComponents new];
comps.day = 7;
NSDate *sevenDays = [calendar dateByAddingComponents:comps toDate:[NSDate date] options:0];

【讨论】:

  • 工作得很好 :) 谢谢雅各布
  • 不过,从技术上讲,OP 似乎想要“7 天”而不是“1 周”(标题和内容有冲突)。我相信在某些日历中 1 周超过 7 天。不过这很迂腐。
  • @borrrden 好点。
  • 使用加号“+”表示后天,减号“-”表示前天
【解决方案2】:
NSDate *todayDate = [NSDate date];
NSDateComponents *dateComponents = [[NSDateComponents alloc] init];
[dateComponents setDay:+7];
NSDate *afterSevenDays = [[NSCalendar currentCalendar] dateByAddingComponents:dateComponents toDate:todayDate options:0];
NSLog(@"todayDate: %@", todayDate);
NSLog(@"afterSevenDays: %@", afterSevenDays);

【讨论】:

    【解决方案3】:
      NSCalendar *calendar=[NSCalendar currentCalendar];    
      NSDateComponents *components = [[NSDateComponents alloc]init];
    components.day = 7;
    NSDate *fireDate =[calendar dateByAddingComponents:components toDate:[NSDate date] options:0];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-29
      • 2013-06-08
      • 1970-01-01
      • 2015-10-17
      • 1970-01-01
      相关资源
      最近更新 更多