objective-c - 从当前日期减去 7 天

标签 objective-c ios nsdate

我似乎无法从当前日期减去 7 天。我就是这样做的:

NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *offsetComponents = [[NSDateComponents alloc] init];
[offsetComponents setDay:-7];
NSDate *sevenDaysAgo = [gregorian dateByAddingComponents:offsetComponents toDate:[NSDate date] options:0];

SevenDaysAgo 获得与当前日期相同的值。

请帮忙。

编辑:在我的代码中,我忘记用正确的日期替换获取当前日期的变量。所以上面的代码是正常的。

最佳答案

代码:

NSDate *currentDate = [NSDate date];
NSDateComponents *dateComponents = [[NSDateComponents alloc] init];
[dateComponents setDay:-7];
NSDate *sevenDaysAgo = [[NSCalendar currentCalendar] dateByAddingComponents:dateComponents toDate:currentDate options:0];
NSLog(@"\ncurrentDate: %@\nseven days ago: %@", currentDate, sevenDaysAgo);
[dateComponents release];

输出:

currentDate: 2012-04-22 12:53:45 +0000
seven days ago: 2012-04-15 12:53:45 +0000

我完全同意 JeremyP 的观点。

BR.
尤金

关于objective-c - 从当前日期减去 7 天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10209427/

相关文章:

objective-c - iOS7 上的 UIActivityViewController 中未显示 Facebook、Twitter 图标

iphone - UIButton 图像不会正确更改

ios - SwiftUI-带有可点击按钮的单元格(在Form内)

ios - 从存储在 32/64 位 NSNumber 中的 unix 时间戳创建 NSDate

iphone - iOS - 将字符串转换为非 en-GB 语言环境 NSDate 返回 nil

ios - 在 viewController 转换完成后 removeFromSuperview。

ios - MFMailComposeView 崩溃

objective-c - 我们可以为类对象使用 setvalue 和 forkey 属性吗?

iphone - 我无法使用这个简单的 LLDB 别名

swift - 从字符串到 Nsdate Swift