ios 時間操作NSDate

2021-06-28 09:12:39 字數 2472 閱讀 5061

nsdate類用於儲存時間值,同時提供了一些方法來處理一些基於秒級別時差(time interval)運算和日期之間的早晚比較等。

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)晚(大)很長時間的時間值,則可以呼叫該方法。測試返回了4000/12/31 16:00:00)

+ (id)distantpast;

返回很多年以前的某一天。(比如你需要乙個比現在(now)早(小)大很長時間的時間值,則可以呼叫該方法。測試返回了西元前0001/12/31 17:00:00)

用於建立nsdate例項的例項方法有

- (id)addtimeinterval:(nstimeinterval)secs;

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

用於初始化nsdate例項的例項方法有

- (id)init;

初始化為當前時間。類似date方法

初始化為以2001/01/01 gmt為基準,然後過了secs秒的時間。類似datewithtimeintervalsincereferencedate:方法

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

初始化為以refdate為基準,然後過了secs秒的時間

- (id)initwithtimeintervalsincenow:(nstimeinterval)secs;

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

2. 

日期之間比較可用以下方法

- (bool)isequaltodate:(nsdate *)otherdate;

與otherdate比較,相同返回yes

- (nsdate *)earlierdate:(nsdate *)anotherdate;

與anotherdate比較,返回較早的那個日期

- (nsdate *)laterdate:(nsdate *)anotherdate;

與anotherdate比較,返回較晚的那個日期

- (nscomparisonresult)compare:(nsdate *)other;

該方法用於排序時呼叫:

. 當例項儲存的日期值與anotherdate相同時返回nsorderedsame

. 當例項儲存的日期值晚於anotherdate時返回nsordereddescending

. 當例項儲存的日期值早於anotherdate時返回nsorderedascending

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的時間間隔

4. 將時間表示成字串

- (nsstring *)description;

以yyyy-mm-dd hh:mm:ss ±hhmm的格式表示時間。(其中"±hhmm" 表示與gmt的存在多少小時多少分鐘的時區差異。比如,若時區設定在北京,則"±hhmm" 顯示為"+0800")

NSDate時間操作

pragma mark nsdate 1.獲取時間date datewithtimeinterval nsdate date nsdate date 格林威治時間 本初子午線的放 nslog date nsdate date1 nsdate datewithtimeintervalsincenow ...

iOS 瘋狂基礎之NSDate 時間

初始化時間 nsdate today nsdate date nsdateformatter formatter nsdateformatter alloc init formatter setdateformat yyyy mm dd datefrom.text formatter stringf...

iOS開發 時間日期NSDate

如果沒有做日曆的需求。對日期經常用到的就是兩個類nsdate 日期類 和nsdateformatter 時間格式器 nsdate的物件表示乙個具體的時間點。使用nsdateformatter物件將時間物件轉化成字串或者反轉。關於日期類還有nstimezone,nsdatecomponents,nsc...