如何在当前时间增加时间

我对这个很困惑。

我想抢,当前时间,比根据条件,我想添加所需的时间,到目前的时间。 例如。

current time = 06:47:10 //or should i hv to change this format to "2011-03-26 06:47:10 GMT" if(a= 1 and b= min ) { //add 1 min to current time } else if(a= 1 and b= hour) { //add 1 hour to current time } else if(a= 1 and b=week ) { //add 1 week to current time } 

只需要将上述条件的输出添加到当前时间。

请指导我这个。

问候

你是指现在的时间吗?

如果是这样,这将为你做到这一点:

 NSDate *now = [NSDate date]; // Grab current time NSDate *newDate = [now addTimeInterval:XXX] // Add XXX seconds to *now 

其中XXX是以秒为单位的时间。

你不应该使用#define kOneDay 86400

在有夏令时的时区里,每年有一天只有82800秒,一天有90000秒。
有时甚至有一天有86401秒。 (但我认为闰秒也被NSDateComponents忽略了。)

如果你想做的正确,你应该使用NSDateComponents。

添加一天,你可以像这样使用它:

 NSDateComponents *offset = [[[NSDateComponents alloc] init] autorelease]; [offset setDay:1]; NSDate *newDate = [[NSCalendar currentCalendar] dateByAddingComponents:offset toDate:date options:0]; 

使用setDay:1而不是setHour:24非常重要。


要添加两个星期和三个小时,你会使用这个

 NSDateComponents *offset = [[[NSDateComponents alloc] init] autorelease]; [offset setWeek:2]; [offset setHour:3]; NSDate *newDate = [[NSCalendar currentCalendar] dateByAddingComponents:offset toDate:date options:0]; 

你应该明白了。 从最大的变化单位开始,一路走下最小的路。

是的,这比addTimeInterval:工作多addTimeInterval:addTimeInterval:hours*60*60是错误的,如果你关心几天,几周和几个月。

 'addTimeInterval:' is deprecated 

你现在可以使用它

 mydate=[NSDate date]; mydate = [mydate dateByAddingTimeInterval:XXX]; //XXX in seconds 

Swift版本:

 let now = NSDate().timeIntervalSince1970 // current time let timeAfterXInterval = NSDate().dateByAddingTimeInterval(XXX).timeIntervalSince1970 // time after x sec 

XXX是秒的时间