【问题标题】:Convert date to next day's date in iOS在iOS中将日期转换为第二天的日期
【发布时间】:2012-11-28 05:55:36
【问题描述】:

我有一个字符串格式的日期,就像30-11-2012。我希望它旁边的日期再次以字符串格式显示为01-12-2012。 有什么方法可以得到吗?

【问题讨论】:

  • 在所有情况下你都想增加 1 天和月 1 吗?
  • 不是真的,我需要的只是我约会的下一个日期。就像如果我有31-12-2012 那么我需要下一个日期,那就是01-01-2013

标签: objective-c ios5 ios6 nsdate xcode4.5


【解决方案1】:

您应该使用 NSCalendar 以获得最佳兼容性

NSDate *today = [NSDate dateWithNaturalLanguageString:@"2011-11-30"];
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *dayComponent = [NSDateComponents new];
dayComponent.day = 1;

today = [calendar dateByAddingComponents:dayComponent toDate:today options:0];
//2011-12-01 12:00:00 +0000

【讨论】:

    【解决方案2】:

    我从一个忘记名字的人那里得到了答案,我正准备接受他/她的回答,但是当我点击接受答案时,它告诉我帖子已被删除。

    那位匿名人士给出的答案如下

    NSString *dateString = @"22-11-2012";
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"dd-MM-yyyy"];
    NSDate *dateFromString = [[NSDate alloc] init];
    dateFromString = [dateFormatter dateFromString:dateString];
    
    
    NSDateComponents *components= [[NSDateComponents alloc] init];
    [components setDay:1];
    NSCalendar *calendar = [NSCalendar currentCalendar];
    NSDate *dateIncremented= [calendar dateByAddingComponents:components toDate:dateFromString options:0];
    
    NSDateFormatter *myDateFormatter = [[NSDateFormatter alloc] init];
    [myDateFormatter setDateFormat:@"dd-MM-yyyy"];
    NSString *stringFromDate = [myDateFormatter stringFromDate:dateIncremented];
    NSLog(@"%@", stringFromDate);
    

    最后我真的很想感谢那个匿名的人,我知道这并没有那么棘手,但这对我帮助很大。再次感谢匿名助手。

    【讨论】:

      【解决方案3】:

      swift 3.0

      var components = DateComponents()
      components.day = 1
      let now = Date()
      let futureDate = Calendar.current.date(byAdding: components, to: now, wrappingComponents: false)
      

      //现在 = 2017-03-22 未来日期 = 2017-03-23

      【讨论】:

      • 请添加一些描述来解释答案。
      猜你喜欢
      • 2023-01-26
      • 1970-01-01
      • 1970-01-01
      • 2018-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-02
      • 1970-01-01
      相关资源
      最近更新 更多