NSDate定義時間的類ios
NSDate是一個時間類,在編寫程序時,咱們不多遇到。今天我忽然碰到,感受很生疏。網絡
給你們發個博客,讓你們也都溫習一下,哈哈!app
兄弟用的時候忽然發現居然有一些bug,你們用時能夠寫驗證了再用。
編碼
一、定義:NSDate *date =[NSDate date];//當前時間對時間的加減spa
二、對時間的操做 orm
NSDate *date1 = [NSDate dateWithTimeIntervalSinceNow:3600.0*10];//從當前時間開始,若干秒後的時間,參數表明秒 rem
NSDate *date2 = [date1 dateByAddingTimeInterval:60];//以某個時間爲標準,加上若干秒後的時間 字符串
NSDate *date3 = [NSDate dateWithTimeIntervalSince1970:1000];//從1970年開始,通過了若干秒的時間計算時間間隔get
三、計算時間間隔博客
NSTimeInterval interval = [date timeIntervalSince1970];//從1970年到某一時間的秒數
NSTimeInterval interval1 = [date1 timeIntervalSinceDate:date];//計算兩個時間的間隔(秒)
NSTimeInterval interval2 = [date1 timeIntervalSinceNow];//獲取某一時間與當前時間的間隔
NSLog(@"%lf",interval1);
四、時間比較
NSDate *date4 = [date laterDate:date1];//獲取兩個時間較晚的(距離1970年時間較長的)
NSDate *date5 = [date earlierDate:date1];
DateFormatter時間格式
五、字符串與時間之間的相互轉換
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);
六、時區
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);
七、消除時間差
NSString *str=@"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);
八、與之相差的data
NSDate *data=[[NSData alloc]init];
NSString *str=@"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);