我有字符串格式的日期,即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小时后显示为空。
任何帮助将不胜感激。
谢谢,
答案 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分钟