ios开发 时间戳和时间互转 时间差的计算

//当前时间
    NSDate *date = [NSDate date];
    NSDateFormatter *dateformatter=[[NSDateFormatter alloc] init];
    //时间格式
    [dateformatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
    //当前时间
    NSString *locationString = [dateformatter stringFromDate:date];
    //把时间转成Date格式
    NSDate *now = [dateformatter dateFromString:locationString];
    //date转成时间戳
    NSString *timeSp = [NSString stringWithFormat:@"%ld", (long)[now timeIntervalSince1970]];
    NSLog(@"时间戳== %@",timeSp);
    //时间戳转成时间
    NSDate *currentDate = [NSDate dateWithTimeIntervalSince1970:1514476800];
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    //设置时间格式
    [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    //date转化成字符串
    NSString *timeStr = [formatter stringFromDate:currentDate];
    NSLog(@"时间== %@", timeStr);
//当前时间(晚的时间)
NSDate *afterDate = [NSDate date];
//时间格式
NSDateFormatter *dateFomatter = [[NSDateFormatter alloc] init];
dateFomatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
// 截止时间字符串格式  早的时间
NSString *firstDateStr = @"2017-05-20 13:26:37";
// 当前时间字符串格式  晚的时间
NSString *afterDateStr = [dateFomatter stringFromDate:afterDate];
// 截止时间data格式
NSDate *firstDate = [dateFomatter dateFromString:firstDateStr];
// 当前时间data格式
afterDate = [dateFomatter dateFromString:afterDateStr];
// 当前日历
NSCalendar *calendar = [NSCalendar currentCalendar];
// 需要对比的时间数据
NSCalendarUnit unit = NSCalendarUnitYear | NSCalendarUnitMonth| NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
// 对比时间差        先是 早的时间      后是 晚的时间
NSDateComponents *dateCom = [calendar components:unit fromDate:firstDate toDate:afterDate options:0];
NSLog(@"======%ld年%ld月%ld日%ld时%ld分%ld秒  之前 ", dateCom.year, dateCom.month, dateCom.day, dateCom.hour, dateCom.minute, dateCom.second);

// 伪代码
    //    年差额 = dateCom.year,
    //    月差额 = dateCom.month,
    //    日差额 = dateCom.day,
    //    小时差额 = dateCom.hour,
    //    分钟差额 = dateCom.minute,
    //    秒差额 = dateCom.second

你可能感兴趣的:(ios开发 时间戳和时间互转 时间差的计算)