我能够获取本地时间的任何位置。我的要求是,一旦我获取本地时间,我需要在 NSDate 之后每分钟添加 1 分钟。例如:我得到这样的时间:11:22 并且我能够显示下一分钟应该是 11:23。
请帮我。
NSDate *currentDate = [NSDate date];
NSDate *datePlusOneMinute = [currentDate dateByAddingTimeInterval:60];
Omarj 的答案看起来很适合简单的测试,但我喜欢使用这段代码:
NSDateComponents *changeComponent = [[NSDateComponents alloc] init];
changeComponent.second = 20;
NSCalendar *theCalendar = [NSCalendar currentCalendar];
NSDate *newDate = [theCalendar dateByAddingComponents:changeComponent toDate:[NSDate date] options:0];
正如您可能看到的,您可以将 changeComponent 更改为分钟、小时、天,或者在我的例子中,秒!这对于测试我目前正在处理的本地通知非常有用。
此解决方案的最大好处是它考虑了日历,因此例如在夏令时更改时添加小时数应该没有问题。
请检查此代码。
NSString* dateString = @"9:33AM";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"hh:mma"];
[formatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
NSDate *date = [formatter dateFromString:dateString];
NSLog(@"Before Adding time %@",date);
NSDate *newDate = [date dateByAddingTimeInterval:14*60];
NSLog(@"After adding time %@",[formatter stringFromDate:newDate]);