美文网首页iOS相关ios iOS开发经验
iOS-判断当前时间是否在时间段内

iOS-判断当前时间是否在时间段内

作者: 一只搬运工的自我修养 | 来源:发表于2017-09-08 12:04 被阅读1231次

    当前时间是否在时间段内 (忽略年月日)

    - (BOOL)judgeTimeByStartAndEnd:(NSString *)startTime withExpireTime:(NSString *)expireTime {
        NSDate *today = [NSDate date];
        NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
        // 时间格式,此处遇到过坑,建议时间HH大写,手机24小时进制和12小时禁止都可以完美格式化
        [dateFormat setDateFormat:@"HH:mm"];
        NSString * todayStr=[dateFormat stringFromDate:today];//将日期转换成字符串
        today=[ dateFormat dateFromString:todayStr];//转换成NSDate类型。日期置为方法默认日期
    //startTime格式为 02:22   expireTime格式为 12:44
        NSDate *start = [dateFormat dateFromString:startTime];
        NSDate *expire = [dateFormat dateFromString:expireTime];
    
        if ([today compare:start] == NSOrderedDescending && [today compare:expire] == NSOrderedAscending) {
            return YES;
        }
        return NO;
    }
    

    当前时间是否在时间段内 (完整时间)

    -(BOOL)judgeTimeByStartAndEnd:(NSString *)startStr EndTime:(NSString *)endStr
    {
        //获取当前时间
        NSDate *today = [NSDate date];
        
        NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
        // 时间格式,建议大写    HH 使用 24 小时制;hh 12小时制
        [dateFormat setDateFormat:@"yyyy:mm:HH:mm:ss"];
         NSString * todayStr=[dateFormat stringFromDate:today];//将日期转换成字符串
        today=[ dateFormat dateFromString:todayStr];//转换成NSDate类型。日期置为方法默认日期
        //start end 格式 "2016-05-18 9:00:00"
        NSDate *start = [dateFormat dateFromString:startStr];
        NSDate *expire = [dateFormat dateFromString:endStr];
        
        if ([today compare:start] == NSOrderedDescending && [today compare:expire] == NSOrderedAscending) {
            return YES;
        }
        return NO;
    }
    
    年
        y 将年份 (0-9) 显示为不带前导零的数字
        yy 以带前导零的两位数字格式显示年份
        yyy 以四位数字格式显示年份
        yyyy 以四位数字格式显示年份
    
    月
        M 将月份显示为不带前导零的数字(如一月表示为 1)
        MM 将月份显示为带前导零的数字(例如 01/12/01)
        MMM 将月份显示为缩写形式(例如 Jan)
        MMMM 将月份显示为完整月份名(例如 January)
            一月 Jan January
            二月 Feb February
            三月 Mar March
            四月 Apr April
            五月 May May
            六月 Jun June
            七月 Jul July
            八月 Aug August
            九月 Sep September
            十月 Oct October
            十一月 Nov November
            十二月 Dec December
    
    日
        d 将日显示为不带前导零的数字(如 1)
        dd 将日显示为带前导零的数字(如 01)
    星期
        EEE 将日显示为缩写形式(例如 Sun)
        EEEE 将日显示为全名(例如 Sunday)
            星期一 Mon Monday
            星期二 Tue Tuesday
            星期三 Wed Wednesday
            星期四 Thu Thursday
            星期五 Fri Friday
            星期六 Sat Saturday
            星期天 Sun Sunday
    小时
        h 使用 12 小时制将小时显示为不带前导零的数字(例如 1:15:15 PM)
        hh 使用 12 小时制将小时显示为带前导零的数字(例如 01:15:15 PM)
        H 使用 24 小时制将小时显示为不带前导零的数字(例如 1:15:15)
        HH 使用 24 小时制将小时显示为带前导零的数字(例如 01:15:15)
    分钟
        m 将分钟显示为不带前导零的数字(例如 12:1:15)
        mm 将分钟显示为带前导零的数字(例如 12:01:15)
    秒
        s 将秒显示为不带前导零的数字(例如 12:15:5)
        ss 将秒显示为带前导零的数字(例如 12:15:05)
        f 显示秒的小数部分
        ff 将精确显示到百分之一秒
        ffff 将精确显示到万分之一秒
        用户定义格式中最多可使用七个 f 符号
    上午&下午
        t 使用 12 小时制
            中午之前任一小时显示大写的 A
            中午到 11:59 PM 之间的任一小时显示大写的 P
        tt 对于使用 12 小时制的区域设置
            中午之前任一小时显示大写的 AM
            中午到 11:59 PM 之间的任一小时显示大写的 PM
        对于使用 24 小时制的区域设置,不显示任何字符
    时区
        z 显示不带前导零的时区偏移量
        zz 显示带前导零的时区偏移量(例如 -08)
        zzz 显示完整的时区偏移量(例如 -0800)
    纪元
        gg 显示时代/纪元字符串(例如 A.D.)
    

    相关文章

      网友评论

        本文标题:iOS-判断当前时间是否在时间段内

        本文链接:https://www.haomeiwen.com/subject/ojugjxtx.html