2013-02-11 109 views
3

我能够得到任何位置的本地时间。我的要求是,一旦我获取本地时间,我需要在每分钟后添加1分钟NSDate.for前:我得到这样的时间:11:22,并且能够在下一分钟显示它应该是11:23。如何将时间间隔增加1分钟到iPhone的NSDate对象

请帮帮我。

+0

我想这是你所需要的: http://stackoverflow.com/questions/5440837/how-to-add-time-in-current-time – 2013-02-11 12:39:34

+0

请再检查一下这个答案 http://stackoverflow.com/questions/11019709/add-90-min-to-nsdate/29542106#29542106 – 2015-04-09 15:04:08

回答

10
NSDate *currentDate = [NSDate date]; 
NSDate *datePlusOneMinute = [currentDate dateByAddingTimeInterval:60]; 
2

Omarj的答案看起来不错,简单的测试目的,但我喜欢用这个代码:

NSDateComponents *changeComponent = [[NSDateComponents alloc] init]; 
changeComponent.second = 20; 

NSCalendar *theCalendar = [NSCalendar currentCalendar]; 
NSDate *newDate = [theCalendar dateByAddingComponents:changeComponent toDate:[NSDate date] options:0]; 

正如你可能会看到,可以改变changeComponent以分钟,小时,天,或我的情况,秒!这对测试我目前正在处理的本地通知非常有用。

该解决方案的最大好处是它考虑到了日历,所以在夏令时改变的时候添加小时应该没有问题。

1

请检查此代码。

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]); 
相关问题