从NSDate中减去分钟数

我想减去一些分钟15分钟10分钟等等,而我现在有date对象,现在我想减去分钟。

看看我的答案这个问题: NSDate减去一个月

下面是一个示例,针对您的问题进行了修改:

NSDate *today = [[NSDate alloc] init]; NSLog(@"%@", today); NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; NSDateComponents *offsetComponents = [[NSDateComponents alloc] init]; [offsetComponents setMinute:-10]; // note that I'm setting it to -1 NSDate *endOfWorldWar3 = [gregorian dateByAddingComponents:offsetComponents toDate:today options:0]; NSLog(@"%@", endOfWorldWar3); 

希望这可以帮助!

使用以下:

 // gives new date object with time 15 minutes earlier NSDate *newDate = [oldDate dateByAddingTimeInterval:-60*15]; 

由于iOS 8有更方便的dateByAddingUnit

 //subtract 15 minutes let calendar = NSCalendar.autoupdatingCurrentCalendar() newDate = calendar.dateByAddingUnit(.CalendarUnitMinute, value: -15, toDate: originalDate, options: nil) 

目前Swift的答案从Swift 2.x开始已经过时了。 这是一个更新的版本:

 let originalDate = NSDate() // "Jun 8, 2016, 12:05 AM" let calendar = NSCalendar.currentCalendar() let newDate = calendar.dateByAddingUnit(.Minute, value: -15, toDate: originalDate, options: []) // "Jun 7, 2016, 11:50 PM" 

NSCalendarUnit OptionSetType值已经更改为.Minute ,您不能再传递nil作为options 。 相反,使用一个空的数组。

使用新的DateCalendar类更新Swift 3:

 let originalDate = Date() // "Jun 13, 2016, 1:23 PM" let calendar = Calendar.current let newDate = calendar.date(byAdding: .minute, value: -5, to: originalDate, options: []) // "Jun 13, 2016, 1:18 PM"