NSDate初步使用

2021-07-02 13:21:45 字數 4364 閱讀 8384

nsdate

的常用用法

1.建立或初始化可用以下方法

用於建立

nsdate

例項的類方法有

+ (id)date;

返回當前時間

+ (id)datewithtimeintervalsincenow:(nstimeinterval)secs;

返回以當前時間為基準,然後過了

secs

秒的時間

+(id)datewithtimeintervalsincereferencedate:(nstimeinterval)secs;

返回以

2001/01/01 gmt

為基準,然後過了

secs

秒的時間

+(id)datewithtimeintervalsince1970:(nstimeinterval)secs;

返回以

1970/01/01 gmt

為基準,然後過了

secs

秒的時間

+ (id)distantfuture;

返回很多年以後的未來的某⼀一天。比如你需要⼀乙個比現在

(now)晚(

大)很長時間的時間值,則可以呼叫該方法。

+ (id)distantpast;

返回很多年以前的某⼀一天。

比如你需要⼀乙個比現在

(now)早(

小)大很長時間的時間值,則可以呼叫該方法。

用於建立

nsdate

例項的例項方法有

- (id)addtimeinterval:(nstimeinterval)secs;

返回以目前的例項中儲存的時間為基準,然後過了

secs

秒的時間

用於初始化

nsdate

例項的例項方法有

- (id)init;

初始化為當前時間。類似

date

方法

-(id)initwithtimeintervalsincereferencedate:(nstimeinterval)secs;

初始化為以

2001/01/01 gmt

為基準,然後過了

secs

秒的時間。類似

datewithtimeintervalsincereferencedate:

方法

- (id)initwithtimeinterval:(nstimeinterval)secs sincedate:(nsdate *)refdate;

初始化為以

refdate

為基準,然後過了

secs

秒的時間

- (id)initwithtimeintervalsincenow:(nstimeinterval)secs;

初始化為以當前時間為基準,然後過了

secs

秒的時間

3.取回時間間隔可用以下方法

- (nstimeinterval)timeintervalsincedate:(nsdate*)refdate;

refdate

為基準時間,返回例項儲存的時間與

refdate

的時間間隔

- (nstimeinterval)timeintervalsincenow;

以當前時間

(now)

為基準時間,返回例項儲存的時間與當前時間

(now)

的時間間隔

- (nstimeinterval)timeintervalsince1970;

1970/01/01 gmt

為基準時間,返回例項儲存的時間與

1970/01/01 gmt

的時間間隔

- (nstimeinterval)timeintervalsincereferencedate;

2001/01/01 gmt

為基準時間,返回例項儲存的時間與

2001/01/01 gmt

的時間間隔

+ (nstimeinterval)timeintervalsincereferencedate;

2001/01/01 gmt

為基準時間,返回當前時間

(now)

與2001/01/01 gmt

的時間間隔

*///

時區類//

獲得系統時區

nstimezone

*tz = [

nstimezone

systemtimezone

];//

獲得當前時間距離

gmt時間相差的秒數

!nsinteger

seconds = [tz

secondsfromgmtfordate

:[nsdate

date

]];//

以[nsdate date]

時間為基準,間隔

seconds

秒後的時間

!nsdate

*localdate = [

nsdate

datewithtimeinterval

:seconds

sincedate

:[nsdate

date

]];//

北京時間

nslog

(@"localdate = %@"

,localdate);

//

日期和字串相互轉換

//日期格式的類

!nsdateformatter

*df = [[

nsdateformatter

alloc

]init

];// 2013-11-27 11:00:57

// hh 24

小時進製

hh 12

小時進製

df.dateformat

= @"yyyy-mm-dd hh:mm:ss";

nsstring

*datestr = [df

stringfromdate

:[nsdate

date

]];

nslog(@"

datestr

= %@"

, datestr);

nsdate 

*datetest = [df

datefromstring:@"

2013-11-27

11:00:57"];

nslog(@"

datetest

= %@"

, datetest);//

預設是格林威治時間需要轉化為北京時間

nstimezone

*tz = [

nstimezone

systemtimezone

];//

獲得datetest

距離gmt

時間相差的秒數

!nsinteger

seconds = [tz

secondsfromgmtfordate

:datetest];

nsdate

*localdate = [

nsdate

datewithtimeinterval

:seconds

sincedate

: datetest];

//北京時間

nslog

(@"localdate = %@"

,localdate);

注:

nsdate

*date = [

nsdate

date

];  //這個方法有時有8小時時差,有時沒有

//最好還是加上下面的這段**

nstimezone*zone = [nstimezone

systemtimezone

];nsinteger interval = [zone secondsfromgmtfordate: date];

nsdate *localedate = [date  datebyaddingtimeinterval: interval];

感謝參考,希望對您有所幫助,如有紕漏請指正。

NSDate 使用總結

1 當前時間建立nsdate nsdate mydate nsdate date nslog mydate mydate 2 從現在開始的24小時 nstimeinterval secondsperday 24 60 60 nsdate tomorrow nsdate datewithtimeint...

NSDate 的簡單使用

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

NSDate使用方法

剛剛做ios開發第乙個需求的時候,需要判斷是否為同一天,最近需求需要判斷兩個日期是否為同一周,在網上沒有找到合適的方法,自己寫了乙個,目前用著還行。nsdate nsdateformatter nsdatecomponents nsdatecomponentformatter nscalendar ...