将时间戳转换成当地时间NSDate 转换成当地yyyy-MM-dd HH:mm:ss时间格式

本文介绍如何使用Objective-C将时间戳转换为特定格式的日期,并调整时区偏移。包括设置NSDateFormatter格式、使用NSTimeZone调整时区,以及通过dateWithTimeIntervalSince1970方法实现时间戳到NSDate的转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


        //将时间戳按yyyy-MM-dd HH:mm:ss格式时间输出,并加上时区偏移

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

        [formatter setDateStyle:NSDateFormatterMediumStyle];

        [formatter setTimeStyle:NSDateFormatterShortStyle];

        [formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"];

        

         NSDate *datenow = [NSDate date];//现在时间,你可以输出来看下是什么格式

        NSLog(@"++ %@", datenow);

        

        NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"Asia/Shanghai"];

        [formatter setTimeZone:timeZone];


        //将时间戳按yyyy-MM-dd HH:mm:ss格式时间输出,并加上时区偏移

        NSDate *confromTimesp = [NSDate dateWithTimeIntervalSince1970:dateNum.floatValue];

        NSLog(@"1296035591  = %@",confromTimesp);

        NSString *confromTimespStr = [formatter stringFromDate:confromTimesp];

        NSLog(@"confromTimespStr =  %@",confromTimespStr);

        

        //将时间戳转换成NSDate,加上时区偏移

        NSDate *confromTimesp = [NSDate dateWithTimeIntervalSince1970:[dateNum intValue]];

        NSLog(@"the date is %@", confromTimesp);

        NSTimeZone *zone = [NSTimeZone systemTimeZone];

        NSInteger interval = [zone secondsFromGMTForDate:confromTimesp];

        NSLog(@"interval is %ld", (long)interval);

        NSDate *localDate = [confromTimesp dateByAddingTimeInterval:interval];

        NSLog(@"the localDate is %@", localDate);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值