iOS-時間格式ISO 8601

ISO 8601時間格式

服務器返回來的時間字符串格式是這種:“2017-09-30T09:00:00”,比一般時間字符串中間多了個字母“T”,網(wǎng)上搜了一下這種時間字符串格式是ISO 8601標準。

ISO 8601:國際標準化組織的國際標準ISO 8601是日期和時間的表示方法,全稱為《數(shù)據(jù)存儲和交換形式·信息交換·日期和時間的表示方法》。目前最新為第三版ISO8601:2004,第一版為ISO8601:1988,第二版為ISO8601:2000。

處理方式:

- (NSString *)timeChange:(NSString *)timeString {
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZZZ"];
    NSDate *currentDate = [dateFormatter dateFromString:timeString];
    NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];
    [outputFormatter setDateFormat:@"yyyy-MM-dd"];
    NSString *timeChanged = [outputFormatter stringFromDate:currentDate];
    return timeChanged;
}

NSISO8601DateFormatter
該類(NSISO8601DateFormatter)是在iOS 10才出現(xiàn)的,該類完美的處理了時間問題,即使你的APP涉及國外用戶,只要你們開發(fā)團隊在時間格式上都遵守ISO8601格式,那么你就再也不用擔心時間出錯了。當然,你們也可以使用時間戳。

NSISO8601DateFormatter *ISO8601DateFormatter = [[NSISO8601DateFormatter alloc] init];
NSDate *ISO8601Date = [ISO8601DateFormatter dateFromString:@"2017-06-08T12:00:00+08:00"];
NSLog(@"ISO8601Date = %@", ISO8601Date);
  
// 注意:美國芝加哥時間(西5區(qū),比中國慢13小時,比0市區(qū)慢5個小時)
ISO8601Date = [ISO8601DateFormatter dateFromString:@"2017-06-08T12:00:00-05:00"];
NSLog(@"ISO8601Date = %@", ISO8601Date);
 
------------打印結果---------------------
ISO8601Date = 2017-06-08 04:00:00 +0000 // 注釋:東8區(qū)時間轉(zhuǎn)成了0市區(qū)的時間了
ISO8601Date = 2017-06-08 17:00:00 +0000 // 注釋:西5區(qū)時間轉(zhuǎn)成了0市區(qū)的時間了

附加:日期相關格式
字符說明
(:)
時間分隔符。在某些區(qū)域設置中,可以使用其他字符表示時間分隔符。時間分隔符在格式化時間值時分隔小時、分鐘和秒。格式化輸出中用作時間分隔符的實際字符由您的應用程序的當前區(qū)域性值確定。
(/)
日期分隔符。在某些區(qū)域設置中,可以使用其他字符表示日期分隔符。日期分隔符在格式化日期值時分隔日、月和年。格式化輸出中用作日期分隔符的實際字符由您的應用程序的當前區(qū)域性確定。
(%)
用于表明不論尾隨什么字母,隨后字符都應該以單字母格式讀取。也用于表明單字母格式應以用戶定義格式讀取。有關更多詳細信息,請參見下面的內(nèi)容。
d
將日顯示為不帶前導零的數(shù)字(如 1)。如果這是用戶定義的數(shù)字格式中的唯一字符,請使用 %d。
dd
將日顯示為帶前導零的數(shù)字(如 01)。
EEE
將日顯示為縮寫形式(例如 Sun)。
EEEE
將日顯示為全名(例如 Sunday)。
M
將月份顯示為不帶前導零的數(shù)字(如一月表示為 1)。如果這是用戶定義的數(shù)字格式中的唯一字符,請使用 %M。
MM
將月份顯示為帶前導零的數(shù)字(例如 01/12/01)。
MMM
將月份顯示為縮寫形式(例如 Jan)。
MMMM
將月份顯示為完整月份名(例如 January)。
gg
顯示時代/紀元字符串(例如 A.D.)
h
使用 12 小時制將小時顯示為不帶前導零的數(shù)字(例如 1:15:15 PM)。如果這是用戶定義的數(shù)字格式中的唯一字符,請使用 %h。
hh
使用 12 小時制將小時顯示為帶前導零的數(shù)字(例如 01:15:15 PM)。
H
使用 24 小時制將小時顯示為不帶前導零的數(shù)字(例如 1:15:15)。如果這是用戶定義的數(shù)字格式中的唯一字符,請使用 %H。
HH
使用 24 小時制將小時顯示為帶前導零的數(shù)字(例如 01:15:15)。
m
將分鐘顯示為不帶前導零的數(shù)字(例如 12:1:15)。如果這是用戶定義的數(shù)字格式中的唯一字符,請使用 %m。
mm
將分鐘顯示為帶前導零的數(shù)字(例如 12:01:15)。
s
將秒顯示為不帶前導零的數(shù)字(例如 12:15:5)。如果這是用戶定義的數(shù)字格式中的唯一字符,請使用 %s。
ss
將秒顯示為帶前導零的數(shù)字(例如 12:15:05)。
f
顯示秒的小數(shù)部分。例如,ff 將精確顯示到百分之一秒,而 ffff 將精確顯示到萬分之一秒。用戶定義格式中最多可使用七個 f 符號。如果這是用戶定義的數(shù)字格式中的唯一字符,請使用 %f。
t
使用 12 小時制,并對中午之前的任一小時顯示大寫的 A,對中午到 11:59 P.M 之間的任一小時顯示大寫的 P。如果這是用戶定義的數(shù)字格式中的唯一字符,請使用 %t。
tt
對于使用 12 小時制的區(qū)域設置,對中午之前任一小時顯示大寫的 AM,對中午到 11:59 P.M 之間的任一小時顯示大寫的 PM。
對于使用 24 小時制的區(qū)域設置,不顯示任何字符。
y
將年份 (0-9) 顯示為不帶前導零的數(shù)字。如果這是用戶定義的數(shù)字格式中的唯一字符,請使用 %y。
yy
以帶前導零的兩位數(shù)字格式顯示年份(如果適用)。
yyy
以四位數(shù)字格式顯示年份。
yyyy
以四位數(shù)字格式顯示年份。
z
顯示不帶前導零的時區(qū)偏移量(如 -8)。如果這是用戶定義的數(shù)字格式中的唯一字符,請使用 %z。
zz
顯示帶前導零的時區(qū)偏移量(例如 -08)
zzz
顯示完整的時區(qū)偏移量(例如 -08:00)
格式顯示:
M/d/yy
12/7/58
d-MMM
7-Dec
d-MMMM-yy
7-December-58
d MMMM
7 December
MMMM yy
December 58
hh:mm tt
08:50 PM
h:mm:ss t
8:50:35 P
H:mm
20:50
H:mm:ss
20:50:35
M/d/yyyy H:mm
12/7/1958 20:50

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,563評論 6 544
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,694評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,672評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,965評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,690評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 56,019評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,013評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,188評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,718評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 41,438評論 3 360
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,667評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,149評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,845評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,252評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,590評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,384評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,635評論 2 380