从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
。 相反,使用一个空的数组。
使用新的Date
和Calendar
类更新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"