iOS 获取系统时间以及时间与日期格式互相转换

#define dateFormatDefine @"yyyy-MM-dd HH:mm:ss"

// 获取当前系统区位时间

- (NSDate *)dateFromNow{

    NSDate *date =[NSDate date];

    NSTimeZone *zone = [NSTimeZone systemTimeZone];

    NSInteger interval = [zone secondsFromGMTForDate: date];

    NSDate *localeDate = [date  dateByAddingTimeInterval: interval];

    

    // 指定日历的算法 NSCalendarIdentifierGregorian,NSGregorianCalendar

    NSCalendar * calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];

    

    // NSDateComponent 可以获得日期的详细信息,即日期的组成

    NSDateComponents *comps = [calendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit|NSHourCalendarUnit|NSMinuteCalendarUnit|NSSecondCalendarUnit|NSWeekCalendarUnit|NSWeekdayCalendarUnit fromDate:date];

    

    NSLog(@" = year = %ld",comps.year);

    NSLog(@" = month = %ld",comps.month);

    NSLog(@" = day = %ld",comps.day);

    NSLog(@" = hour = %ld",comps.hour);

    NSLog(@" = minute = %ld",comps.minute);

    NSLog(@" = second = %ld",comps.second);

    NSLog(@"星期 = weekDay = %ld ",comps.weekday);

    return localeDate;

}


//时间字符串转换为日期格式

- (NSDate *)dateFromString:(NSString *)str{

    //实例化一个NSDateFormatter对象

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

    //设定时间格式,这里可以设置成自己需要的格式

    [dateFormat setDateFormat:dateFormatDefine];

    // 设置时间格式的时区 东八区 北京时间

    [dateFormat setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];

    return [dateFormat dateFromString:str];

}


//日期转换为时间字符串

- (NSString *)stringFromdate:(NSDate *)date {

    //实例化一个NSDateFormatter对象

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

    //设定时间格式,这里可以设置成自己需要的格式

    [dateFormat setDateFormat:dateFormatDefine];

    // 设置时间格式的时区 东八区 北京时间

    [dateFormat setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];

    return [dateFormat stringFromDate:date];

}


// 日期字符串的比较

- (NSString *)dateBiJiao:(NSString *)str1 str2:(NSString *)str2 {

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

    NSDate *date1 = [dateFormatter dateFromString:str1];

    NSDate *date2 = [dateFormatter dateFromString:str2];

    NSLog(@"用于比较的第一个时间 = %@", [self dateFromString:str1]);

    NSLog(@"用于比较的第二个时间 = %@", [self dateFromString:str2]);

    NSDate *r = [date1 laterDate:date2]; //返回较晚的那个日期

    if([date1 isEqualToDate:date2]) {

        NSLog(@"日期相同");

        return @"相同";

    }else{

        NSLog(@"日期不相同");

        if([r isEqualToDate:date2]) {

            return @"未过期";

        }else{

            return @"已过期";

        }

        

    }

}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值