在开发过程中有时候需要计算时间, 比如想知道2019年11月15日 10:00 前一个小时的时间, 或者前一周的时间,或者后一周的时间, 那么该如何计算呢?
1. 初始化一个 NSDateFormatter 对象, 用来将字符串日期@"2019年11月15日 10:00"
转换成NSDate对象
- (NSDateFormatter *)getDateFormatter{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy年MM月dd日 HH:mm"];
return dateFormatter;
}
2.将字符串日期@"2019年11月15日 10:00"
转换成NSDate对象
//获取NSDateFormatter对象
NSDateFormatter *dateFormatter = [self getDateFormatter];
//进行转化
NSDate * startDate = [dateFormatter dateFromString:@"2019年11月15日 10:00"];
3.根据时间间隔计算日期的方法
/**
根据起始时间和时间间隔计算时间
@param startDate 开始时间
@param timeInterval 时间间隔 以分钟为单位
@return 计算得到的时间
*/
- (NSDate *)getResultDate:(NSDate *)startDate timeInterval:(NSInteger)timeInterval{
NSDate *resultDate = [NSDate dateWithTimeInterval:60 * (timeInterval) sinceDate:startDate];
return resultDate;
}
4.进行计算间隔前一小时的时间
//进行计算间隔前一小时的时间
//NSDate * resultDate = [self getResultDate: startDate timeInterval:-60];
//进行计算间隔后一小时的时间
NSDate * resultDate = [self getResultDate: startDate timeInterval:60];
//获取NSDateFormatter对象
NSDateFormatter *dateFormatter = [self getDateFormatter];
//将结果时间转化成字符串
NSString *resulttime = [dateFormatter stringFromDate: resultDate];
网友评论