OC-NSDate

一:NSDate

         > GMT表示的是0时区的时间。
         >NSDate表示的是一个绝对的时间点,如(2015-11-9 21:33:12)+000000
         >时间默认零时区为当前时间(格林尼治)时间 
         >Date reference时间是以2001-01-01基准时间
         >NSDate时间包含了日期,时间,时区

二:创建时间的方法

 1.创建时间(类方法+)

(1):获取当前时间(0时区)

             NSDate*date1= [NSDatedate]; 

(2):>以下两种方法是相同的意思
      >但是现在一般用第二种形式(程序员的思想,你懂的)

      >以sinceDate这个提前定义好的时间对象为基准
      >在它的时间上+interval时间间隔。返回一个SNDate值

      >加上的意思就是过了多少秒

       NSDate *beijingDate = [NSDate dateWithTimeInterval:intervalsinceDate:nowDate];

     

      SinceNow后是时间间隔。

      >当前时间加上时间间隔,返回一个NSDate对象的时间


      NSDate*beijingDate2 = [NSDate dateWithTimeIntervalSinceNow:interval];
     
(4): Since1970的意思是:

     >从1970-01-01 00:00:00 +0000过了8秒

        NSDate *date2 = [NSDate dateWithTimeIntervalSince1970:8];


(5)SinceReference的意思是:      

     >2001-01-01 00:00:00 +0000过了8秒

      NSDate *date3 = [NSDate dateWithTimeIntervalSinceReferenceDate:8];

                  

 (6)  :返回一个极早和极晚的时间

        NSDate *date4 = [NSDatedistantFuture];

       NSDate *date5 = [NSDatedistantPast];

     
(7):返回当前系统时区zone = Asia/Shanghai (GMT+8) offset 28800)


         NSTimeZone *zone = [NSTimeZonesystemTimeZone];

          

2.创建NSDate的初始化方法 (-)  

       >(上面的+号方法都有一个—号方法,alloc]init+相同的方法名)

(1):在另一个时间对象基础上加上加上一个制定的时间间隔(秒)
      //现在应该已经舍弃这个方法了

      NSDate *date6 = [date2addTimeInterval:8];

  

 (2):用字符串转换成对象

   

      //创建日期格式对象

      NSDateFormatter *formatter = [[NSDateFormatteralloc]init];

        

      //设置日期的格式

      NSString *str1 =@"yyyy-MM-dd HH:mm:ss";

        

  (3).用字符串转换成日期 (dateFromString)  

       

       //NSDateFormatter是设置日期格式的类

                 //然后可以帮助字符串NSStringNSDate的相互转化

       /*

            日期格式:

         y: year

         M: month(大写)

         d: day

         

         H:时(24进制) h(12进制)

         m:  minute;

         s: second

         

         

         */



          

         //创建日期格式对象

        NSDateFormatter *formatter = [[NSDateFormatteralloc] init];

  

        //设置日期的格式

        NSString *str1 =@"yyyy-MM-dd HH:mm:ss";

        [formattersetDateFormat:str1];           

        NSDate *date8 = [formatterdateFromString:@"2015/10/9 11:50:40"];

      

 (4).对应的日期转换成字符串(StringFromdate)

        //在转转换成字符串时,自动的转换成当前时区的时间。

        //但是原来的对象还是0时区的时间。

       //2015-10-09 11:50:40

        NSString *str = [formatterstringFromDate:date8];

            

三:NSDate对象持有的方法

1.时间间隔     

       // typedef double NSTimeInterval; NSTimeInterval实际上是double类型

       //距离当前(0时区时间)时刻360秒的时间(NSDate当前时间)

        NSDate *date1 = [NSDatedateWithTimeIntervalSinceNow:360];

       NSLog(@"date1 %@",date1);


        //获取当前系统时区

        NSTimeZone *zone = [NSTimeZone systemTimeZone];

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


        //o时区和当前时区相差的时间:(NSTimeInterval获取时间间隔)

        NSTimeInterval interval = [zone secondsFromGMT];

                        

       //昨天的现在时刻(60*60是一个小时,*24是一天的时间,然后减去,表示昨天的现在)

        NSDate *date2 = [NSDatedateWithTimeIntervalSinceNow:-(60*60*24)];

        NSLog(@"%@",date2);

        

        

        //明年的这个时刻(假设今年是366天)

        NSDate *date3 =[NSDatedateWithTimeIntervalSinceNow:366*24*60*60];

        NSLog(@"%@",date3);

        

        

        //计算给定Date对象和当前时间的时间间隔,时间单位为秒

        //给定Date对象是date1(以date1的时间为基准,在它的时间的偏移)

        NSTimeInterval time = [date1 timeIntervalSinceNow];

2.时间比较

       

     NSDate *date4 = [NSDatedateWithTimeIntervalSince1970:0];

       NSDate *date5 = [NSDatedateWithTimeInterval:0sinceDate:date4];

       BOOL isEqual = [date5isEqualToDate:date4];

       NSLog(@"%d",isEqual);

                           

            

 
            
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值