ios NSDate 時間戳 時間間隔

2021-06-20 18:42:19 字數 3250 閱讀 8151

nsdate 時間戳 時間間隔

nsdate 使用 ios時間的秒數

取當前時間的秒數

nstimeinterval time = [[nsdate date] timeintervalsince1970];

long long int date = (long long int)time;

nslog(@」date\n%d」, date); //1295322949

//把秒數轉化成yyyy-mm-dd hh:mm:ss格式

nsdate *dd = [nsdate datewithtimeintervalsince1970:date];

nslog(@」d:%@」,dd); //2011-01-18 03:55:49 +0000

//給乙個時間秒數,取出對應的時間

nsstring *s = @」1295355600000″; //對應21:00

nsdate *d = [nsdate datewithtimeintervalsince1970:[s doublevalue]/1000];

nslog(@」dddd:%@」,d); //2011-01-18 13:00:00 +0000

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

[formatter1 setdateformat:@"hh:mm"];

nsstring *showtimenew = [formatter1 stringfromdate:d];

nslog(@」showtimenew:%@」,showtimenew); //21:00 比d的時間 +8小時

[formatter1 release];

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

+ (nstimeinterval)timeintervalsincereferencedate;

以2001/01/01 gmt為基準時間,返回當前時間(now)與2001/01/01 gmt的時間間隔

4. 將時間表示成字串

- (nsstring *)description;

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

時間戳 時間

由於團隊業務做的是國際專案,就無法避免乙個問題 時區問題,很多業務都是跟時間有關。一些時間的對比,時間的展示,都會涉及到時區和時間戳,所以花點時間來簡單總結一下 時間戳定義 0時區1970年1月1日到現在的毫秒數,所以全世界同一時刻的時間戳都是一樣的。北京時間對應時間戳 unix 0時區對應時間的時...

JS17 時間功能 時間與時間戳

一 獲取時間戳 new date gettime es5獲取當前時間戳,13位毫秒 new date valueof date.now es6獲取當前時間戳 二 功能 時間戳轉日期格式 1.時間戳轉日期格式 如 10或13位 2020 2 21 10 20 30 tostrtime ntimesta...

js獲取時間戳 時間戳轉時間

1 var timestamp date.parse new date 精準到秒2 var timestamp new date valueof 精準到毫秒3.var timestamp new date gettime 精準到毫秒1 var a new date tolocaledatestrin...