三句話理解時區(qū)與時間戳

從不浪費時間的人,沒有工夫抱怨時間不夠讹语。 —— 杰弗遜

第一句話:時間戳

時間不分東西南北吊洼、在地球的每一個角落都是相同的蓖捶。他們都有一個相同的名字,叫時間戳军援。時間戳 指的就是Unix時間戳(Unix timestamp)绍些。它也被稱為Unix時間(Unix time)可训、POSIX時間(POSIX time)膘滨,是一種時間表示方式甘凭,定義為從格林威治時間1970年01月01日00時00分00秒起至現(xiàn)在的總秒數(shù)。

關(guān)于 時間戳火邓, 你可以看在線時間戳

第二句話:時區(qū)

時間戳 在地球的每一個角落都是相同的丹弱,但是在相同的時間點會有不同的表達(dá)方式德撬,所以有了另外一個時間概念,叫時區(qū)蹈矮。這里的時區(qū)地區(qū)不是同一個概念砰逻,例如我們所在的時區(qū)東八區(qū) 鸣驱。
在設(shè)備中,可以自己手動的切換當(dāng)前的系統(tǒng)時區(qū):

時區(qū)設(shè)置

你會發(fā)現(xiàn):當(dāng)你選在不同的時區(qū)泛鸟,你的當(dāng)前時間是不一樣的。

第三句話:時間戳與時區(qū)在Code中應(yīng)用

一踊东、時間戳 是不會跟著 時區(qū) 的改變而改變

可以用代碼來證明這一點:


- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
    
    // 系統(tǒng)時區(qū)
    NSTimeZone* timeZone = [NSTimeZone systemTimeZone];
    NSLog(@"系統(tǒng)當(dāng)前的時區(qū): %@",  timeZone.name);
    
    // 返回的單位是 秒
    NSTimeInterval timeInterval = [[NSDate date] timeIntervalSince1970] ;
    
    NSLog(@"當(dāng)前時間戳:%f", timeInterval);
}

你會發(fā)現(xiàn)北滥,不管怎么切換時區(qū)時間戳總是一致闸翅≡儆螅可以實時的參照在線時間戳進(jìn)行驗證。

二坚冀、不同 時區(qū) 間的時間切換

這個需求并不是空穴來風(fēng)济赎,在很多的app中都會用到的。比如根據(jù)服務(wù)器返回的時間與當(dāng)前時間進(jìn)行一個比較记某,這里就會有多種可能性司训,主要體現(xiàn)在服務(wù)器返回時間的方式,比如直接返回一個固定時間的字符串液南,比如:2017-06-14 22:55:23壳猜。然后接口的同事告訴你這個是 東八區(qū) 時間。讓你自己轉(zhuǎn)成當(dāng)前 時區(qū) 的時間滑凉。

1统扳、將當(dāng)前 時區(qū) 的時間轉(zhuǎn)成不同 時區(qū) 的時間

不管當(dāng)前設(shè)備的 時區(qū) 在什么地方,都將其轉(zhuǎn)成 東八區(qū) 的時間格式。代碼如下:

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
    // 系統(tǒng)時區(qū),默認(rèn)就是當(dāng)前的時區(qū)
    NSTimeZone* timeZone = [NSTimeZone systemTimeZone];
    NSLog(@"系統(tǒng)當(dāng)前的時區(qū): %@",  timeZone.name);
    
    // 獲取當(dāng)前時間
    NSDate* date = [NSDate date];
    
    // 時間格式
    NSDateFormatter * dateFormatter = [[NSDateFormatter alloc]init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    
    NSString* now = [dateFormatter stringFromDate:date];
    
    NSLog(@"系統(tǒng)當(dāng)前時間顯示: %@", now);
    
    // 將時區(qū)設(shè)置成 東八區(qū)
    [dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:8*3600]];
    // 設(shè)置后的時間顯示
    now = [dateFormatter stringFromDate:date];
    
    NSLog(@"東八區(qū)的當(dāng)前時間顯示: %@", now);
}

打印結(jié)果如下:

打印完美結(jié)果
2畅姊、2017-06-08T11:29:29.209Z

當(dāng)有一天你發(fā)現(xiàn)服務(wù)器返回這樣的時間咒钟,請不要束手無策,因為這個時間格式就已經(jīng)明確的將時區(qū)也告訴你了若未,你只需要這樣做朱嘴,就能隨時隨地的轉(zhuǎn)成當(dāng)前時區(qū)的時間格式:

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
    // 時間字符串 (帶有時區(qū)信息)
    NSString* timeTEXT = @"2017-06-08T11:29:29.209Z";
    // 對應(yīng)時間格式
    NSString* formateTEXT =  @"yyyy-MM-dd'T'HH:mm:ss.SSSZ";
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:formateTEXT];
    
    // 獲取當(dāng)前對應(yīng)時區(qū)的時間
    NSDate* curDate = [dateFormatter dateFromString:timeTEXT];
    
    NSLog(@"對應(yīng)當(dāng)前時區(qū)的時間: %@", curDate);
}

上面的代碼,沒有看到有 時區(qū) 間的切換,但是是正確的陨瘩。因為timeTEXT已經(jīng)自帶時區(qū) 信息腕够。然而 NSDateFormatter 對象默認(rèn)是當(dāng)前設(shè)備的 時區(qū)。所以 curDate 就是當(dāng)前設(shè)備的時間舌劳。

3帚湘、想了一下,沒有其它的需要補充了甚淡,都太簡單大诸。
謝謝~
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末捅厂,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子资柔,更是在濱河造成了極大的恐慌焙贷,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贿堰,死亡現(xiàn)場離奇詭異辙芍,居然都是意外死亡,警方通過查閱死者的電腦和手機羹与,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進(jìn)店門故硅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人纵搁,你說我怎么就攤上這事吃衅。” “怎么了腾誉?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵徘层,是天一觀的道長。 經(jīng)常有香客問我利职,道長趣效,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任眼耀,我火速辦了婚禮英支,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘哮伟。我一直安慰自己干花,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布楞黄。 她就那樣靜靜地躺著池凄,像睡著了一般。 火紅的嫁衣襯著肌膚如雪鬼廓。 梳的紋絲不亂的頭發(fā)上肿仑,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天,我揣著相機與錄音碎税,去河邊找鬼尤慰。 笑死,一個胖子當(dāng)著我的面吹牛雷蹂,可吹牛的內(nèi)容都是我干的伟端。 我是一名探鬼主播,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼匪煌,長吁一口氣:“原來是場噩夢啊……” “哼责蝠!你這毒婦竟也來了党巾?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤霜医,失蹤者是張志新(化名)和其女友劉穎齿拂,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體肴敛,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡署海,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了值朋。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片叹侄。...
    茶點故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡巩搏,死狀恐怖昨登,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情贯底,我是刑警寧澤丰辣,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站禽捆,受9級特大地震影響笙什,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜胚想,卻給世界環(huán)境...
    茶點故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一琐凭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧浊服,春花似錦统屈、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至孽拷,卻和暖如春吨掌,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背脓恕。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工膜宋, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人炼幔。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓秋茫,卻偏偏與公主長得像,于是被迫代替她去往敵國和親江掩。 傳聞我的和親對象是個殘疾皇子学辱,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,884評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,129評論 25 707
  • Android跨進(jìn)程通信IPC整體內(nèi)容如下 1乘瓤、Android跨進(jìn)程通信IPC之1——Linux基礎(chǔ)2、Andro...
    隔壁老李頭閱讀 15,588評論 19 113
  • 今天策泣,不知為何衙傀,可能是心有所感吧,來到了這個地方萨咕,算是我的夢開始的地方吧统抬,大連站。 那時的自己危队,很單純聪建,不知道世界...
    月黑風(fēng)高睡覺夜閱讀 206評論 0 0
  • 今天聽李笑來的一個分享金麸,有人問記憶力怎么提高,李笑來說的就是多背多記簿盅,就像電腦似的提高自己的內(nèi)存條挥下。還說雖然看起來...
    簡單生活M閱讀 486評論 0 0
  • (一) 初見, 你是人間自由的風(fēng)桨醋, 看到你突然想要去嘗試風(fēng)與愛情棚瘟。 (二) 想問你見過櫻花落滿街道的情景嗎? 我見...
    漁陽雨下閱讀 813評論 11 21