如何在当前时间增加时间
我对这个很困惑。
我想抢,当前时间,比根据条件,我想添加所需的时间,到目前的时间。 例如。
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是秒的时间