添加20分钟到UTC日期

时间:2016-11-21 17:49:09

标签: ios objective-c time

我有字符串格式的日期,即UTC时区。 我想增加20分钟到目前为止。

我正在使用以下代码:

   NSString *strFinal = @"2016-11-21 13:07:04";
   //NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
   //[dateFormatter setDateFormat:@"yyyy-mm-dd hh:mm:ss"];
   self.dateFormatter = [[NSDateFormatter alloc]init];
   [self.dateFormatter setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
   NSDate *dateFromString = [[NSDate alloc] init];
   [self.dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
   dateFromString = [self.dateFormatter dateFromString:strFinal];
   self.dt = [[NSDate alloc]init];
   self.dt = dateFromString;

   NSTimeInterval secondsInEightHours = 20 * 60;
   //NSDate *dateEightHoursAhead = [dateFromString dateByAddingTimeInterval:secondsInEightHours];
    NSDate *dateEightHoursAhead = [self.dt dateByAddingTimeInterval:secondsInEightHours];

   //after adding 20 mins check
    NSString *strFinaltoPass = [self.dateFormatter stringFromDate:dateEightHoursAhead];

但是使用此日期时间,它将strFinaltoPass作为null。

这适用于时间少于12小时,但在12小时后显示为空。

任何帮助将不胜感激。

谢谢,

1 个答案:

答案 0 :(得分:0)

您可以使用NSCalendar添加分钟,这是一个示例

NSString *strDate = @"2016-11-21 13:07:04";
NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc] init];
[dateFormatter1 setDateFormat:@"yyyy-MM-dd hh:mm:ss"];

NSDate *dateTemp = [dateFormatter1 dateFromString:strDate];
NSCalendar *calendar = [NSCalendar currentCalendar];

NSDate *dateNew = [calendar dateByAddingUnit:NSCalendarUnitMinute value:20 toDate:dateTemp options:NSCalendarWrapComponents];

此处value = 20在日期中添加20分钟