天天看點

NSDate-日期類 OC——第七天(1)

1、總結前面學習的oc中的幾種資料類型

nsinteger

nsuinteger

cgfloat

nsstring nsmutablestring

nssarray nsmutablearray

nsdictionary nsmutabledictionary

nsset nsmutableset

2、nsdate 日期類,繼承自nsobject ,代表的是一個時間點

nsdate *date = [nsdate date];

nsloge(@“%@“,date);//顯示的是格林尼治時間:年-月-日 時:分:秒:+時區

3、typedef double nstimeinterval; nstimeinterval實質是double 類型

nsdate *date1 = [nsdate datewithtimeintervalsincenow:60];

4、昨天的現在時刻

nsdate *date2 = [nsdate datewithtimeintervalsincenow:-(60 * 60 *24)];

明年的這個時刻

nsdate *date3 = [nsdate datewithtimeintervalsincenow:366 *24*60*60];

5、計算給定date對象和目前時間的時間間隔

nstimeinterval time = [date1 timeintervalsincenow];

6、計算目前時間和明年時間

time = [date timeintervalsincenow];

7、時間戳:從1970.1.1 到目前時間的時間間隔就叫時間戳

time = [date timeintervalsince1970];

8、 時間戳對象

nsdate *date4 = [nsdate datewithtimeintervalsince1970:360];

9、擷取中原標準時間,在零時區的基礎上加上8個小時,就到了東8區,也就是中原標準時間

nsdate *date5 = [date datebyaddingtimeinterval:8 *60 *60 ];

例子: 計算一個目前時間和一個固定時間的內插補點如果內插補點在60妙以内輸出“剛剛”,如果在60秒到3600之前,則輸出“xx分鐘之前”,若在3600到24 *3600 之内,則輸出“xx小時之前”,若再24 * 3600之外,則顯示固定時間

nsdate *t2 = [nsdate datewithtimeintervalsincenow:-2*3600];

nstimeinterval time3 = [t2 timeintervalsincenow];

time3 = -time3;

if (time3 <</span> 60) {

nslog(@"剛剛");

}else if (time3 <</span> 3600){

nslog(@"%.2lf分鐘之前",time3 / 60);

}else if (time3 <</span> 24 *3600){

nslog(@"%.2lf小時之前",time3 / 3600);

}else{

nslog(@"%@",t2);

}

==============================================================

10、nsdateformatter 日期格式類,主要作用:将nsdate 對象轉化為某種格式,然後轉化成nsstring 對象

//建立nsdateformatter 對象

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

//設定日期格式:yyyy(年) - mm(月) - dd(日) h(小時) m (分鐘)s(秒)

[formatter setdateformat:@"yyyy年mm月dd日 hh時mm分ss秒"];

nsdate *date7 = [nsdate date];

11、 nsdate ——>nsstring

stringformatter 會直接加上相聚0時區的時間間隔

nsstring *datestring = [formatter stringfromdate:date7];

nslog(@"%@",datestring);

例子: 練習:将date7顯示格式變為:2015年09月07号,11-35-20

nsdateformatter *formatter2 = [[nsdateformatter alloc]init];

[formatter2 setdateformat:@"yyyy年mm月dd号 hh-mm-ss"];

nsstring *datestring2 = [formatter2 stringfromdate:date7];

nslog(@"%@",datestring2);

12、将字元串轉化為nsdate 對象

比如:将2015年09月07号 11時40分50秒

準備時間格式對象

nsdateformatter *formatter3 = [[nsdateformatter alloc]init];

[formatter3 setdateformat:@"yyyy年mm月dd号 hh時mm分ss秒"];

//轉化字元串對象

nsstring *datestring3 = @"2015年09月07号 11時40分50秒";

//nsstring -->nsdate

nsdate *date8 = [formatter3 datefromstring:datestring3];

nslog(@"%@",date8);

//将轉換回來的對象手動加上8小時,回到中原標準時間

nsdate *date9 = [date8 datebyaddingtimeinterval:8 *60 *60];

nslog(@"%@",date9);

練習:例子: 将字元串轉化為nsdate 對象;比如:@"将2015年09月07日 11時40分50秒"

//準備時間格式對象

nsdateformatter *formatter4 = [[nsdateformatter alloc]init];

[formatter4 setdateformat:@"将yyyy年mm月dd日 hh時mm分ss秒"];

nsstring *datestring4 = @"将2015年09月07日 13時28分50秒";

nsdate *date11= [formatter4 datefromstring:datestring4];

nsdate *date10 = [date11 datebyaddingtimeinterval:8*60*60];

nslog(@"%@",date10);

轉自:http://blog.csdn.net/qq_31810357