//获取当前时间
-(NSString*)getCurrentTime {
NSDateFormatter*formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString*dateTime = [formatter stringFromDate:[NSDate date]];
// NSString *str1 = [dateTime stringByReplacingOccurrencesOfString:@"-" withString:@""];
NSLog(@"当前时间是===%@",dateTime);
return dateTime;
}
//将本地日期字符串转为UTC日期字符串
//本地日期格式:2013-08-03 12:53:51
//可自行指定输入输出格式
-(NSString *)getUTCFormateLocalDate:(NSString *)localDate
{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
//输入格式
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *dateFormatted = [dateFormatter dateFromString:localDate];
NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"UTC"];
[dateFormatter setTimeZone:timeZone];
//输出格式 @"yyyy-MM-dd'T'HH:mm:ssZ" 对应 2017-09-05T03:21:29+0000
// @"yyyy-MM-dd'T'HH:mm:ss.sss'Z'" 对应 2017-11-03T23:35:41.000Z
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.sss'Z'"];
NSString *dateString = [dateFormatter stringFromDate:dateFormatted];
return dateString;
}
//将UTC日期字符串转为本地时间字符串
//输入的UTC日期格式2013-08-03T04:53:51+0000 / 2012-09-20T09:37:33.000Z
-(NSString *)getLocalDateFormateUTCDate:(NSString *)utcDate
{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
//输入格式
// [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.sss'Z'"];
NSTimeZone *localTimeZone = [NSTimeZone localTimeZone];
[dateFormatter setTimeZone:localTimeZone];
NSDate *dateFormatted = [dateFormatter dateFromString:utcDate];
//输出格式
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *dateString = [dateFormatter stringFromDate:dateFormatted];
return dateString;
}
- (NSInteger)calculateDateWithFromDate:(NSString *)fromDate ToDate:(NSString *)toDate {
// 1.确定时间
NSString *time1 = [self getLocalDateFormateUTCDate:fromDate];
NSString *time2 = [self getLocalDateFormateUTCDate:toDate];
// 2.将时间转换为date
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSDate *date1 = [formatter dateFromString:time1];
NSDate *date2 = [formatter dateFromString:time2];
// 3.创建日历
NSCalendar *calendar = [NSCalendar currentCalendar];
NSCalendarUnit type = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
// 4.利用日历对象比较两个时间的差值
NSDateComponents *cmps = [calendar components:type fromDate:date1 toDate:date2 options:0];
// 5.输出结果
NSLog(@"两个时间相差%ld年%ld月%ld日%ld小时%ld分钟%ld秒", cmps.year, cmps.month, cmps.day, cmps.hour, cmps.minute, cmps.second);
return (cmps.day + cmps.year*365 + cmps.month*30);
}