NSDateFormatter 相關問題

2021-07-09 05:52:58 字數 1292 閱讀 4053

今天碰到伺服器傳過來的日期格式不是常見的,轉換格式的時候遇到點問題.

如日期(字串)為 nov 12 2015,dec 2 2015 轉為 11/12/2015 , 12/02/2015.核心**如下.

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

[dateformatter setdateformat:@"mmm dd yyyy"];

[dateformatter setlocale:[nslocale localewithlocaleidentifier:@"en_us"]];

nsdate *date = [dateformatter datefromstring:datestr];

[dateformatter setdateformat:@"mm/dd/yyyy"];

nsstring *result = [dateformatter stringfromdate:date];

其中locale 一定要設定. en-us zh-cn

常用格式:

g: 公元時代,例如ad公元

yy: 年的後2位

yyyy: 完整年

mm: 月,顯示為1-12

mmm: 月,顯示為英文月份簡寫,如 jan

mmmm: 月,顯示為英文月份全稱,如 janualy

dd: 日,2位數表示,如02

d: 日,1-2位顯示,如 2

eee: 簡寫星期幾,如sun

eeee: 全寫星期幾,如sunday

aa: 上下午,am/pm

h: 時,24小時制,0-23

k:時,12小時制,0-11

m: 分,1-2位

mm: 分,2位

s: 秒,1-2位

ss: 秒,2位

s: 毫秒

各種時間字元詳細說明

(:)

時間分隔符。在某些區域設定中,可以使用其他字元表示時間分隔符。時間分隔符在格式化時間值時分隔小時、分鐘和秒。格式化輸出中用作時間分隔符的實際字元由您的應用程式的當前區域性值確定。

(/)

日期分隔符。在某些區域設定中,可以使用其他字元表示日期分隔符。日期分隔符在格式化日期值時分隔日、月和年。格式化輸出中用作日期分隔符的實際字元由您的應用程式的當前區域性確定。

(%)

用於表明不論尾隨什麼字母,隨後字元都應該以單字母格式讀取。也用於表明單字母格式應以使用者定義格式讀取。有關更多詳細資訊,請參見下面的內容。

NSDateFormatter時區問題

使用nsdateformatter轉換時間字串時,預設的時區是系統時區,如我們使用一般都是北京時間 8 如果直接使用 cpp view plain copy print?dateformatter datefromstring 2012 01 01 00 00 00 你會發現實際轉換為2011 12...

IOS開發 NSDateFormatter的問題

今天下午遇到乙個問題.描述 找userdate之前大約三個月 相當於90天 的日期是多少?方法 使用了下面的方法 nsdate threemonthbeforedate nsdate datewithtimeinterval 60 60 24 30 3 sincedate userdate 但是結果...

NSDateFormatter相關整理

formatter譯為格式,相應的nsdateformatter就相當於是nsdate的轉換類,將nsdate轉換為另一種格式,或轉換回來。nsdate沒有自己的輸出,需要借助nsdateformatter以相應格式輸出。這差不多就是nsdateformatter的作用了吧。常用的方法並不複雜,幾條...