日期转换 NSDate 格式 格林尼治时间 时差

宏定义:#define  格式 没有逗号分号
#define kEightHourSecond 8*60*60 //0时区和中国东八区时间间隔
#define kChinaOneDayHourSecond24*60 * 60 + kEightHourSecond//从零时区转化为东八区中国一天的时间
#define kYesterdaySecond -24*60*60+ kEightHourSecond//从零时区转化为东八区中国明天的时间
#define kOneDayHourSecond60*60 * 24

//1.输出0时区时间 即格林尼治   获取的时间是格林尼治的标准时间,也就是0时区的时间和日期

       NSDate *date = [NSDate date];

        NSLog(@"%@",date);

//2.北京是东八区0时区相差8个小时,一个时区是1个小时  输出北京时间 

initWithTimeIntervalSinceNow初始化方法传入一个时间段(kEightHourSecond也就是当前0时区时间距离这个时间段的时间间隔

NSDate *chinaDate = [[NSDate alloc]initWithTimeIntervalSinceNow:kEightHourSecond ];

        NSLog(@"%@",chinaDate);


//3.明天昨天都写成宏定义  输出明天 昨天这个时候的时间        

        NSDate *tomorrowDate = [[NSDate alloc]initWithTimeIntervalSinceNow:kChinaOneDayHourSecond];       

       NSDate *yesterdayDate = [[NSDate alloc]initWithTimeIntervalSinceNow:kYesterdaySecond];

       NSLog(@"%@",tomorrowDate);

       NSLog(@"%@",yesterdayDate);

//4. typedef double NSTimeInterval

//NSTimeInterval是一个用typedef定义的一个新的double类型的别名用来表示以秒为单位的时间间隔

//输出此刻和昨天时间相差时间间隔(以秒为单位

 NSTimeIntervaltime = [tomorrowDatetimeIntervalSinceDate:yesterdayDate];

       NSLog(@"%f",time);


//5.练习一当前时间与固定时间比较 小于60输出刚刚 60 3600】输出xx分钟之前 3600  3600 * 24】输出xx小时之前

//随机一个固定时间  随机时间是按秒算的 3600   24小时之内

       NSDate *suijiDate = [[NSDatealloc]initWithTimeIntervalSinceNow:arc4random()%(3600 * 24)];

       NSDate *nowDate = [[NSDatealloc]initWithTimeIntervalSinceNow:kEightHourSecond];

       NSTimeInterval valueDate = [suijiDatetimeIntervalSinceDate:nowDate];

       NSLog(@"%@ ",suijiDate);

       NSLog(@"%@ ",nowDate);

       NSLog(@"%f",valueDate);

       if (valueDate < 60.0) {//差值小于60

           NSLog(@"刚刚");

        }elseif (valueDate <3600){//差值【60  3600秒】

           NSLog(@"%f分钟前",valueDate/60);

        }else {//差值【3600 3600 * 24】;

           NSLog(@"%f小时前",valueDate/3600);

        }

//6.initWithTimeIntervalSince1970时间 0 输上秒数(24 * 60 *60)24小时之后 对应时间往上加  

距离1970-1-1 000000 多少秒之后的一个时间 下输出

1970-01-02 00:00:00 +0000

       NSDate *date1 = [[NSDate alloc]initWithTimeIntervalSince1970:24 * 60 *60];

        NSLog(@"%@",date1);


//7.距离某个时间 具体时间呢   2016-01-11 062101 计算指定日期多少秒之后的日期

//从今天此刻时间 距离放假时间还有61天,则那天的具体时间是

2016-01-12 17:36:36 +0000

NSDate *date2 = [NSDate dateWithTimeInterval:61 *kChinaOneDayHourSecond
                                               sinceDate:[NSDate date]];

                                 NSLog(@"%@",date2);


8.//     //日期输出的格式格式化字符串 y  M d H小时数(0-23 h小时数(1-12m分钟数 s秒数

//        //NSLog(@"%@",@"yyyy")

//    //NSTimeZone 转换时区

        NSDateFormatter *formate = [[NSDateFormatter alloc]init];//日期转换的类

//设置转换格式(setDateFormat yyyyMMdd HH(hh) mm ss

        [formate setDateFormat:@"MM-dd-yyyy HH:mm:ss"];

// NSDate日期转换成字符串(NSString才能显示空间上 

11-12-2015 17:42:57

        NSString *nowTimer = [formate stringFromDate:[NSDate date]];

        NSLog(@"%@",nowTimer);


9.NSDate日期转换成字符串(NSString(stringFromDate:) (dateFromString:)字符串日期转换成date日期

//字符串和日期互换   字符串日期转换成date日期

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

        [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];//设置格式

        NSString *daterStudent = @"1992-9-3 16:26:56";//字符串日期

        NSDate *birthday = [formatter dateFromString:daterStudent];//字符串日期转换成date日期

        NSLog(@"%@",birthday);




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值