ios - 日期 AddingTimeInterval 不起作用

标签 ios nsdate

在某些情况下,我需要在 1 天内增加一个 NSDate。为此,我正在使用 dateByAddingTimeInterval,但它不起作用。

代码如下:

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"dd/MM/yyyy HH:mm"];
NSString *startDate = [NSString stringWithFormat:@"%@/2012 %@",dayString, begin];
NSString *endStringForDate = [NSString stringWithFormat:@"%@/2012 %@",dayString, end];

NSLog(@"Csantos: event starts: %@, event ends: %@", startDate, endStringForDate);

NSDate *beginDate = [dateFormat dateFromString:startDate];
NSDate *endDate = [dateFormat dateFromString:endStringForDate];

NSComparisonResult result = [beginDate compare:endDate];


if(result == NSOrderedDescending){
    NSTimeInterval dayinseconds = 24 * 60 * 60;

    [endDate dateByAddingTimeInterval:dayinseconds];
    NSLog(@"Csantos: event ends: %@", endDate);
}

结果:

2012-01-24 12:09:47.837 app[3689:207] Csantos: event starts: 19/02/2012 23:00, event ends: 19/02/2012 03:00
2012-01-24 12:09:47.837 app[3689:207] Csantos: event ends: 19/02/2012 03:00

我已经尝试过 addTimeInterval(我知道已弃用),但它也不起作用。怎么了?

问候!

最佳答案

[endDate dateByAddingTimeInterval:dayinseconds]; 返回一个值,该值是函数生成的新日期。日期是不可变对象(immutable对象)(如字符串),因此您无法修改它们 - 您只能通过应用函数来获取新日期。

如果你这样写,它会起作用:

endDate = [endDate dateByAddingTimeInterval:dayinseconds];

关于ios - 日期 AddingTimeInterval 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8988622/

相关文章:

iphone - 按下电源按钮的 NSNotification

ios - PhoneGap/Cordova + iOS7 + XCode 5

ios - 在tableview中延迟加载图像

iphone - 右对齐和方向改变时 UITextField 占位符文本位置错误

objective-c - 通过组合两个 NSDate 来创建一个新的 NSDate

ios - 第一次更改 UITextField 属性 isSecureTextEntry 时键盘闪烁

ios - 将 NSDate 转换为 NSString 以保存在 NSMutableArray 中

ios - 与 NSDate 混淆

ios - 将 3 小时添加到 NSDate 的小时

objective-c - 2008-02-01T10 :03:23. 793-06:00 的日期格式