21

NSDate特定の時間を表すを持っています。その日付の形式はhhmmssです。NSIntervalその時間の値に(秒単位で指定された)値を追加したいと思います。

例:

NSDate =         123000
NSTimeInterval = 3600

Added together = 133000

これを行うための最良の方法は何ですか?

4

3 に答える 3

52

Cocoaマニュアルの日付と時刻のプログラミングトピックを見たことがありますか?

基本的に、時間をNSDateに変換する必要があります。文字列を日付に変換するには、NSDateFormatterクラスを使用するNSDateComponentsか、時間、分、秒をすでに知っている場合は使用します。

あなたNSTimeIntervalはただのダブル(つまり、3600.0)です。

次にdateByAddingTimeInterval、NSDateのメソッドを使用して、時間に秒数を追加します。

NSDate* newDate = [oldDate dateByAddingTimeInterval:3600.0];

NSDateFormatterその後、またはを使用NSDateComponentsして、新しい時間を再び元に戻すことができます。

于 2009-04-23T11:58:43.617 に答える
8

addTimeIntervalは非推奨になりました。代わりにdateByAddingTimeIntervalを使用してみてください。

于 2011-01-07T14:25:02.730 に答える
1
// This will set the time when your view appears it will also
// set the time if you want to retrieve from it.
-(void)viewDidAppear:(BOOL)animated
{
     //Create todays date
     NSDate *duedate = [NSDate date];
     //Add how ever many days you could write 86400*numbe_of_days days 86400/24 for an hour
     //Then simply reassign the variable or use a different one.
     duedate = [duedate dateByAddingTimeInterval:86400];  //I add one day
     [datePicker setDate:duedate animated:YES]; //Animate yes will show your pickers moving
     [datePicker setMinimumDate:duedate]; //Set minimum date.
}
于 2013-10-26T07:52:34.257 に答える