iOS-時間類date詳解

來源:互聯網
上載者:User

標籤:

        NSDate定義時間的類

        

      NSDate是一個時間類,在編寫程式時,我們很少遇到。今天我突然碰到,感覺很生疏。

      給大家發個部落格,讓大家也都溫習一下,哈哈!

        兄弟用的時候突然發現竟然有一些bug,大家用時可以寫驗證了再用。

1、定義:NSDate *date =[NSDate date];//目前時間對時間的加減

2、對時間的操作                                                                                            

NSDate *date1 = [NSDate dateWithTimeIntervalSinceNow:3600.0*10];//從目前時間開始,若干秒後的時間,參數代表秒                                                                                                                         

NSDate *date2 = [date1 dateByAddingTimeInterval:60];//以某個時間為標準,加上若干秒後的時間     

NSDate *date3 = [NSDate dateWithTimeIntervalSince1970:1000];//從1970年開始,經過了若干秒的時間計算時間間隔

3、計算時間間隔

NSTimeInterval interval = [date timeIntervalSince1970];//從1970年到某一時間的秒數

NSTimeInterval interval1 = [date1 timeIntervalSinceDate:date];//計算兩個時間的間隔(秒)

NSTimeInterval interval2 = [date1 timeIntervalSinceNow];//擷取某一時間與目前時間的間隔

NSLog(@"%lf",interval1);

4、時間比較

NSDate *date4 = [date laterDate:date1];//擷取兩個時間較晚的(距離1970年時間較長的)

NSDate *date5 = [date earlierDate:date1];

DateFormatter時間格式

 

5、字串與時間之間的相互轉換

 

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

 

[formater setDateFormat:@"yyyy-MM-dd h:mm:ss "];//設定時間顯示的格式,此處使用的formater格式要與字串格式完全一致,否則轉換失敗

 

NSString *dateStr = [formater stringFromDate:date1];//將日期轉換成字串

 

NSLog(@"%@",dateStr);

 

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

 

[formatter1 setDateFormat:@"yyyy年MM月dd日 hh:mm:ss"];//此處使用的formater格式要與字串格式完全一致,否則轉換失敗

 

[formatter1 setTimeZone:[NSTimeZone localTimeZone]];//將字串轉換成日期

 

NSString *str = @"2015年11月11日 11:11:11";

 

NSDate *date6 = [formatter1 dateFromString:str];

 

NSLog(@"%@",date6);

 

 

 

6、時區 

NSTimeZone *zone = [NSTimeZone systemTimeZone];//擷取系統時區

[formater setTimeZone:zone];//設定時區       

NSInteger timeOff = [zone secondsFromGMT];//擷取系統時區的格林時差

NSLog(@"%f",timeOff/3600.0);

NSDate *date7=[formatter1 dateFromString:str];

NSDate *date8 = [date7 dateByAddingTimeInterval:timeOff];

NSLog(@"%@",date8);

7、消除時間差

NSString *[email protected]"2015年11月10日 11:11:11";

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

[formatter setDateFormat:@"yyyy年MM月dd日 hh:mm:ss"];

NSDate *date=[formatter dateFromString:str];

NSLog(@"%@",date);

[formatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];

NSDate *date1=[formatter dateFromString:str];

NSLog(@"%@",date1);

[formatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];

NSDate *date2=[formatter dateFromString:str];

NSLog(@"%@",date2);

NSInteger timeoff=[[NSTimeZone localTimeZone] secondsFromGMT];

NSDate *date3=[date dateByAddingTimeInterval:timeoff];

NSLog(@"%@",date3);

8、與之相差的data

NSDate *data=[[NSData alloc]init];

NSString *[email protected]"1234";

NSData *data1=[str dataUsingEncoding:NSUTF8StringEncoding];//將字串轉換成data,NSUTF8StringEncoding代表編碼格式。

NSString *str1=[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];//data轉換為字串

NSLog(@"%@",data1);//輸出data類型

NSLog(@"%zi",data1.length);//輸出data長度

NSData *data2 = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.iconpng.com/png/ios7-     premium/tree11.png"]];//擷取網路資料

NSLog(@"%@",data2);

NSMutableData *data3 = [NSMutableData data];//建立一個空的資料

[data3 appendData:data];//拼接data

NSLog(@"%@",data3);

 

       

 

 

       

       

       

       

 

iOS-時間類date詳解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.