2个时间差 ios

2016-11-01 21:40:33 baohanqing 阅读数 4148
  • 计算机系统--体系结构存储系统

    完全掌握iOS, Android, 嵌入式Linux平台音视频开发的相关知识并能够深入运用的自己的各大项目中。 熟练使用c/c++,Posix库进行跨平台开发。课程由浅入深,让学员一步一步成为音视频领域的专家。

    632人学习 任铄
    免费试看

//

//  HQTimeTool.m

//  Doing

//

//  Created by hq on 16/10/23.

//  Copyright © 2016 hanqing. All rights reserved.

//


#import "HQTimeTool.h"


#define HQDateFormatter @"yyyyMMddHHmmss"


@implementation HQTimeTool


+(BOOL) isShowMsgTime:(NSString *) beginTime endTime:(NSString *) endTime{

    

    NSDateFormatter *dateFormatter=[[NSDateFormatter alloc]init];

    //要注意格式一定要统一

    [dateFormatter setDateFormat:HQDateFormatter];

    

    NSDate *beginD=[dateFormatter dateFromString:beginTime];

    

    NSDate *endD=[dateFormatter dateFromString:endTime];

    

    NSTimeInterval value=[endD timeIntervalSinceDate:beginD];

    

    

    //如果时间大于5分钟,5*60秒,则显示时间

    if (value>5*60) {

        

        return true;

    }

    

    return true;

}


//获取当前时间yyyyMMddHHmmss

+(NSString *) getCurrentTime{

    

    NSDate *date=[[NSDate alloc]init];

    

    NSDateFormatter *formatter=[[NSDateFormatter alloc]init];

    

    [formatter  setDateFormat:HQDateFormatter];

    

    NSString *curTime=[formatter stringFromDate:date];

    

    return curTime;


}


@end

2018-10-15 16:04:35 weixin_39874189 阅读数 541
  • 计算机系统--体系结构存储系统

    完全掌握iOS, Android, 嵌入式Linux平台音视频开发的相关知识并能够深入运用的自己的各大项目中。 熟练使用c/c++,Posix库进行跨平台开发。课程由浅入深,让学员一步一步成为音视频领域的专家。

    632人学习 任铄
    免费试看

iOS计算两个时间差

//获取两个date直接的时间差

  • (void)getBabyDetailAge:(long long )time
    {
    NSDate *date1 = [NSDate dateWithTimeIntervalSince1970:time];
    NSDate *date2 = [NSDate date];
    NSCalendar *gregorian = [[ NSCalendar alloc ] initWithCalendarIdentifier : NSCalendarIdentifierGregorian];
    NSUInteger unitFlags = NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
    NSDateComponents *components = [gregorian components:unitFlags fromDate:date1 toDate:date2 options:0];

    NSInteger years = [components year];
    NSInteger months = [components month];
    NSInteger days = [components day];
    NSInteger hour = [components hour];
    NSInteger minute = [components minute];
    NSInteger second = [components second];
    NSLog(@“时间差为 %@-%@-%@ %@:%@:%@”,@(years),@(months),@(days),@(hour),@(minute),@(second));
    }
    分别可以计算出两个时间间隔多少年、月、日、时、分、秒。

2016-03-31 19:20:28 lgx_admin 阅读数 908
  • 计算机系统--体系结构存储系统

    完全掌握iOS, Android, 嵌入式Linux平台音视频开发的相关知识并能够深入运用的自己的各大项目中。 熟练使用c/c++,Posix库进行跨平台开发。课程由浅入深,让学员一步一步成为音视频领域的专家。

    632人学习 任铄
    免费试看

IOS根据date计算时间差

IOS开发有时候会有根据两个时间点获取时间差的需求

此处介绍一个获取两个时间差的简单方法

NSDate *oldDate = [NSDate date];
        NSDate *currentDate = [NSDate date];
        NSLog(@"lastDate == %@",currentDate);
        
        NSCalendar *cal = [NSCalendar currentCalendar];
        unsigned int unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
        NSDateComponents *dateComponents = [cal components:unitFlags fromDate:oldDate toDate:currentDate options:0];
        
        float sec = [dateComponents hour]*3600 + [dateComponents minute]*60  + [dateComponents second];
        NSLog(@"sec ==== %f",sec);


2019-12-24 10:29:48 xiaoxiaobaibaicai 阅读数 106
  • 计算机系统--体系结构存储系统

    完全掌握iOS, Android, 嵌入式Linux平台音视频开发的相关知识并能够深入运用的自己的各大项目中。 熟练使用c/c++,Posix库进行跨平台开发。课程由浅入深,让学员一步一步成为音视频领域的专家。

    632人学习 任铄
    免费试看
//比较两个时间的时间差
+ (NSString *)compareTwoDate:(NSString *)begain end:(NSString *)end{
    // 1.将时间转换为date
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
    NSDate *date1 = [formatter dateFromString:begain];
    NSDate *date2 = [formatter dateFromString:end];
    // 2.创建日历
    NSCalendar *calendar = [NSCalendar currentCalendar];
    NSCalendarUnit type = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
    // 3.利用日历对象比较两个时间的差值
    NSDateComponents *cmps = [calendar components:type fromDate:date1 toDate:date2 options:0];
    // 4.结果
    if (cmps.second <= 0 && cmps.minute < 0) {
        return @"0";
    }
    //初始化
    NSString *dayStr = [NSString stringWithFormat:@"%ld",cmps.day];
    NSString *hourStr = [NSString stringWithFormat:@"%ld",cmps.hour];
    NSString *minuteStr = [NSString stringWithFormat:@"%ld",cmps.minute];
    NSString *secondStr = [NSString stringWithFormat:@"%ld",cmps.second];
    if (cmps.day < 10) {
        dayStr = [NSString stringWithFormat:@"0%ld",cmps.day];
    }
    if (cmps.hour < 10) {
        hourStr = [NSString stringWithFormat:@"0%ld",cmps.hour];
    }
    if (cmps.minute < 10) {
        minuteStr = [NSString stringWithFormat:@"0%ld",cmps.minute];
    }
    if (cmps.second < 10) {
        secondStr = [NSString stringWithFormat:@"0%ld",cmps.second];
    }
    return [NSString stringWithFormat:@"%@:%@:%@:%@",dayStr,hourStr,minuteStr,secondStr];
}

我这里做了判断,如果开始时间大于结束时间,则返回字符串“0”;当天时分秒差值小于10时,前面补0显示

2015-03-19 21:30:02 robinson_911 阅读数 1625
  • 计算机系统--体系结构存储系统

    完全掌握iOS, Android, 嵌入式Linux平台音视频开发的相关知识并能够深入运用的自己的各大项目中。 熟练使用c/c++,Posix库进行跨平台开发。课程由浅入深,让学员一步一步成为音视频领域的专家。

    632人学习 任铄
    免费试看

- (NSInteger) _checkDate

{

    NSInteger result = 0;

    

    NSDateFormatter *formatter = [[[NSDateFormatter alloc] init]autorelease];

    [formatter setDateFormat:@"yyyyMMdd"];

    

//    NSDate *beginDate = [formatter dateFromString:_textstart.text];

//    NSDate *endDate = [formatter dateFromString:_textend.text];

    

        NSDate *beginDate = [formatter dateFromString:@"20150309"];

        NSDate *endDate = [formatter dateFromString:@"20150312"];


    NSDate *_compareDate=[formatter dateFromString:@"20150309"];

    NSTimeInterval time=[endDate timeIntervalSinceDate:_compareDate];

  NSInteger  days=((int)time)/(3600*24);

    

    NSLog(@"--------days-------%ld",days);

    

    

    //起始日期大于截止日期

    if ([beginDate compare:endDate] == NSOrderedDescending) {

        result = -1;

    }

    //比较两个时间相差的天数,大于一个月

//    else if ([endDate compare:[beginDate dateByAddingTimeInterval:(3*30*24*60*60)]] == NSOrderedDescending) {

//        result = -2;

//    }


    return result;

iOS时间差8小时问题

阅读数 1059

IOS 计算时间差

阅读数 984