Ответ 1
Вы имеете в виду текущее время, как сейчас?
Если это так, это сделает это за вас:
NSDate *now = [NSDate date]; // Grab current time
NSDate *newDate = [now addTimeInterval:XXX] // Add XXX seconds to *now
Где XXX - это время в секундах.
Я очень смущен этим.
Я хочу захватить текущее время, чем в соответствии с условием, я хочу добавить требуемое время к текущему времени. например.
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:hours*60*60
ошибочно, если вам нужны дни, недели и месяцы.
'addTimeInterval:' is deprecated
Вы можете использовать это сейчас
mydate=[NSDate date];
mydate = [mydate dateByAddingTimeInterval:XXX]; //XXX in seconds
Быстрая версия:
let now = NSDate().timeIntervalSince1970 // current time
let timeAfterXInterval = NSDate().dateByAddingTimeInterval(XXX).timeIntervalSince1970 // time after x sec
XXX - это время в секундах