15分10分など、数分を減算したいのですが、時間のある日付オブジェクトがあり、分を減算したいと思います。
20921 次
4 に答える
74
以下を使用してください:
// gives new date object with time 15 minutes earlier
NSDate *newDate = [oldDate dateByAddingTimeInterval:-60*15];
于 2011-02-14T04:38:42.877 に答える
25
この質問に対する私の答えをチェックしてください:NSDateは1か月を差し引きます
これがあなたの質問のために修正されたサンプルです:
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);
お役に立てれば!
于 2011-02-14T04:53:49.857 に答える
11
iOS 8以降、より便利なものがありますdateByAddingUnit
:
//subtract 15 minutes
let calendar = NSCalendar.autoupdatingCurrentCalendar()
newDate = calendar.dateByAddingUnit(.CalendarUnitMinute, value: -15, toDate: originalDate, options: nil)
于 2015-05-10T13:35:50.380 に答える
8
現在のSwiftの回答は、Swift2.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
新しいクラスとクラスを使用したSwift3のアップデートCalendar
:
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"
Swift4の上記のコードを更新します。
let newDate = calendar.date(byAdding: .minute, value: -5, to: originalDate) // "Jun 13, 2016, 1:18 PM"
于 2016-06-08T04:07:01.607 に答える