一些NSDate的簡單使用

2021-06-23 06:39:01 字數 2646 閱讀 4333

object-c基礎語法nsdate, 主要學習nsdate的設定、獲取當前時間、當前時間加減秒後的時間、日期比較、日期轉換成nsstring等

xcode4.6.3,os x sdk 10.8; nsdate日期操作,獲取當前日期,日期比較,日期格式,日期推算,時差解決辦法等 。

一、nsdate初始化

// 獲取當前日期  

nsdate *date = [nsdate date];   

// 列印結果: 當前時間 date = 2013-08-16 09:00:04 +0000  

nslog(@"當前時間 date = %@"

,date);   

// 獲取從某個日期開始往前或者往後多久的日期,此處60代表60秒,如果需要獲取之前的,將60改為-60即可  

date = [[nsdate alloc] initwithtimeinterval:60 sincedate:[nsdate date]];   

//列印結果:當前時間 往後60s的時間date = 2013-08-16 09:01:04 +0000  

nslog(@"當前時間 往後60s的時間date = %@"

,date);  

ps:測試時時間是下午5點,但是得到的當前時間卻是上午9點,相差了8小時,是時區的問題

解決辦法:

nstimezone *zone = [nstimezone systemtimezone];   

nsinteger interval = [zone secondsfromgmtfordate: date];   

nsdate *localdate = [date  datebyaddingtimeinterval: interval];   

// 列印結果 正確當前時間 localdate = 2013-08-16 17:01:04 +0000  

nslog(@"正確當前時間 localdate = %@"

,localdate);  

二、nsdate與nsstring的轉換

/*---- nsdate與nsstring----*/

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

// 設定日期格式  

[dateformatter setdateformat:@"年月日 yyyy/mm/dd 時間 hh:mm:ss"

];   

nsstring *datestring = [dateformatter stringfromdate:[nsdate date]];   

// 列印結果:datestring = 年月日 2013/10/16 時間 05:15:43  

nslog(@"datestring = %@"

,datestring);   

// 設定日期格式  

[dateformatter setdateformat:@"yyyy-mm-dd"

];   

nsstring *year = [dateformatter stringfromdate:[nsdate date]];   

// 列印結果:年月日 year = 2013-08-16  

nslog(@"年月日 year = %@"

,year);   

// 設定時間格式  

[dateformatter setdateformat:@"hh:mm:ss"

];   

nsstring *time = [dateformatter stringfromdate:[nsdate date]];   

// 列印結果:時間 time = 05:15:43  

nslog(@"時間 time = %@"

,time);  

三、日期的比較

/*----日期時間的比較----*/

// 當前時間  

nsdate *currentdate = [nsdate date];   

// 比當前時間晚乙個小時的時間  

nsdate *laterdate = [[nsdate alloc] initwithtimeinterval:60*60 sincedate:[nsdate date]];   

// 比當前時間早乙個小時的時間  

nsdate *earlierdate = [[nsdate alloc] initwithtimeinterval:-60*60 sincedate:[nsdate date]];   

// 比較哪個時間遲  

if([currentdate laterdate:laterdate])    

// 比較哪個時間早  

if([currentdate earlierdate:earlierdate])    

if([currentdate compare:earlierdate]==nsordereddescending)    

if([currentdate compare:currentdate]==nsorderedsame)    

if([currentdate compare:laterdate]==nsorderedascending)   

NSDate 的簡單使用

1 建立乙個物件,賦值為當前日期date 建立的nsdate物件,獲得的永遠是0時區的時間,china是東八區,需要加上8個小時 nsdate date nsdate date nstimezone zone nstimezone systemtimezone 修改時區 nsinteger inte...

iOS 關於NSDate的一些記錄

markutc和gmt時間 時間用例 2015 01 11 11 11 11 1.時間戳 現在時間 nsdate date nsdate date 從1970年到date的時間間隔 秒數 double interval date.timeintervalsince1970 一般我們使用的時間戳精確到...

NSDate的簡單使用說明

object c基礎語法nsdate,主要學習nsdate的設定 獲取當前時間 當前時間加減秒後的時間 日期比較 日期轉換成nsstring等 xcode4.6.3,os x sdk 10.8 nsdate日期操作,獲取當前日期,日期比較,日期格式,日期推算,時差解決辦法等 一 nsdate初始化 ...