我正在处理iPhone开发中的日期。我需要从当前日期算起24小时。
答案 0 :(得分:1)
简单:
NSDate *tomorrow = [[NSDate date] dateByAddingTimeInterval:86400];
答案 1 :(得分:1)
您可以使用dateByAddingTimeInterval
NSDate *currentDate = [NSDate date];
NSDate *datePlusOneDay = [currentDate dateByAddingTimeInterval:(60 * 60 * 24)]; //one day
答案 2 :(得分:0)
您可以添加NSTimeInterval。由于这是一个双秒,只需添加24 * 60 * 60:
- (id)dateByAddingTimeInterval:(NSTimeInterval)seconds
答案 3 :(得分:0)
尝试
NSDate *twentyFourHoursLater = [[NSDate alloc] initWithTimeIntervalSinceNow:60 * 60 * 24];
答案 4 :(得分:0)
将下载日期保存在NSUserdefaults中,然后检查是否已经过了24小时? 如果没有通知用户他/她将不得不等待。
答案 5 :(得分:0)
将上次下载日期保存在NSUserDefaults中。当您尝试下载时,只需检查该日期。
类似的东西:
- (BOOL)downloadDataForecedUpdate:(BOOL)forced {
NSDate *lastDownloadDate = [[NSUserDefaults standardUserDefaults] objectForKey:@"lastDownloadDate"];
if (forced || !lastDownloadDate || [[NSDate date] timeIntervalSinceDate:lastDownloadDate] > 24 * 60 * 60) {
// start download
[NSURLConnection connectionWithRequest:myDownloadRequest delegate:self];
return YES;
}
return NO;
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
// process data
[[NSUserDefaults standardUserDefaults] setObject:[NSDate date] forKey:@"lastDownloadDate"];
}
您可以在适当的时候致电[self downloadDataForecedUpdate:NO]
。在申请启动或IBAction。使用方法的返回值来显示下载指示符或警告,告诉用户他必须等待更多。
答案 6 :(得分:0)
根据您真正想要实现的目标,只需在您的时间间隔内添加86,400(或60 * 60 * 24)可能不是您想要的。例如,如果用户经历了夏令时调整,那么您将在一个小时之后离开,如果它发生在午夜附近,则会关闭一天。更好的方法是向NSCalendar询问结果,该结果考虑了用户的本地时区。
NSDate *start = yourDate;
NSDateComponents *oneDay = [NSDateComponents new];
[oneDay setDay:1];
NSCalendar *cal = [NSCalendar currentCalendar];
NSDate *end = [cal dateByAddingComponents:oneDay toDate:start options:0];