[绍棠] 世界标准时间UTC /GMT 转为当前系统时区对应的时间

//获取当前时间

-(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);

}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值