現地時間の任意の場所を取得できます。私の要件は、現地時間を取得したら、毎分1分後にNSDateに追加する必要があることです。例:次のような時間を取得しています: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]);