IOS開發之格式化日期時間

2021-06-18 21:20:37 字數 3994 閱讀 3738

在開發ios程式時,有時候需要將時間格式調整成自己希望的格式,這個時候我們可以用nsdateformatter類來處理。例如:

//例項化乙個nsdateformatter物件

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

//設定時間格式,這裡可以設定成自己需要的格式

[dateformatter setdateformat:@"yyyy-mm-dd hh:mm:ss"];

//用[nsdate date]可以獲取系統當前時間

nsstring *currentdatestr = [dateformatter stringfromdate:[nsdate date]];

//輸出格式為:2010-10-27 10:22:13

nslog(@"%@",currentdatestr);

//alloc後對不使用的物件別忘了release

[dateformatter release];

nsdate 

轉換為nsstring:

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

[dateformatter setdateformat:@"yyyy-mm-dd hh:mm:ss"];

nsstring *strdate = [dateformatter stringfromdate:[nsdate date]];

nslog(@"%@", strdate);

[dateformatter release];

結果:

2010-08-04 16:01:03

nsstring 

轉換為nsdate:

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

[dateformatter setdateformat:@"yyyy-mm-dd hh:mm:ss"];

nsdate *date = [dateformatter datefromstring:@"2010-08-04 16:01:03"];

nslog(@"%@", date);

[dateformatter release];

結果

:

2010-08-04 16:01:03 +0800

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

- (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

字元說明

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

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

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

d將日顯示為不帶前導零的數字(如 1)。如果這是使用者定義的數字格式中的唯一字元,請使用 %d。

dd將日顯示為帶前導零的數字(如 01)。

eee將日顯示為縮寫形式(例如 sun)。

eeee

將日顯示為全名(例如 sunday)。

m將月份顯示為不帶前導零的數字(如一月表示為 1)。如果這是使用者定義的數字格式中的唯一字元,請使用 %m。

mm將月份顯示為帶前導零的數字(例如 01/12/01)。

mmm將月份顯示為縮寫形式(例如 jan)。

mmmm

將月份顯示為完整月份名(例如 january)。

gg顯示時代/紀元字串(例如 a.d.)

h使用 12 小時制將小時顯示為不帶前導零的數字(例如 1:15:15 pm)。如果這是使用者定義的數字格式中的唯一字元,請使用 %h。

hh使用 12 小時制將小時顯示為帶前導零的數字(例如 01:15:15 pm)。

h使用 24 小時制將小時顯示為不帶前導零的數字(例如 1:15:15)。如果這是使用者定義的數字格式中的唯一字元,請使用 %h。

hh使用 24 小時制將小時顯示為帶前導零的數字(例如 01:15:15)。

m將分鐘顯示為不帶前導零的數字(例如 12:1:15)。如果這是使用者定義的數字格式中的唯一字元,請使用 %m。

mm將分鐘顯示為帶前導零的數字(例如 12:01:15)。

s將秒顯示為不帶前導零的數字(例如 12:15:5)。如果這是使用者定義的數字格式中的唯一字元,請使用 %s。

ss將秒顯示為帶前導零的數字(例如 12:15:05)。

f顯示秒的小數部分。例如,ff 將精確顯示到百分之一秒,而 ffff 將精確顯示到萬分之一秒。使用者定義格式中最多可使用七個 f 符號。如果這是使用者定義的數字格式中的唯一字元,請使用 %f。

t使用 12 小時制,並對中午之前的任一小時顯示大寫的 a,對中午到 11:59 p.m 之間的任一小時顯示大寫的 p。如果這是使用者定義的數字格式中的唯一字元,請使用 %t。

tt對於使用 12 小時制的區域設定,對中午之前任一小時顯示大寫的 am,對中午到 11:59 p.m 之間的任一小時顯示大寫的 pm。

對於使用 24 小時制的區域設定,不顯示任何字元。

y將年份 (0-9) 顯示為不帶前導零的數字。如果這是使用者定義的數字格式中的唯一字元,請使用 %y。

yy以帶前導零的兩位數字格式顯示年份(如果適用)。

yyy以四位數字格式顯示年份。

yyyy

以四位數字格式顯示年份。

z顯示不帶前導零的時區偏移量(如 -8)。如果這是使用者定義的數字格式中的唯一字元,請使用 %z。

zz顯示帶前導零的時區偏移量(例如 -08)

zzz顯示完整的時區偏移量(例如 -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

IOS開發之格式化日期時間

在開發ios程式時,有時候需要將時間格式調整成自己希望的格式,這個時候我們可以用nsdateformatter類來處理。例如 例項化乙個nsdateformatter物件 nsdateformatter dateformatter nsdateformatter alloc init 設定時間格式,...

Eval 日期時間格式化

在前台頁面繫結日期欄位時需要對其進行格式化,從而達到想要的效果,下面是從網上找到的比較全的eval格式化模式 eval addtime d mm dd yyyy 如 2001 3 27 d dddd,mmmm dd,yyyy 如 2001年3月27日 f dddd,mmmm dd,yyyy hh m...

JS 格式化日期時間

方法一 對date的擴充套件,將 date 轉化為指定格式的string 月 m 日 d 小時 h 分 m 秒 s 季度 q 可以用 1 2 個佔位符,年 y 可以用 1 4 個佔位符,毫秒 s 只能用 1 個佔位符 是 1 3 位的數字 例子 new date format yyyy mm dd ...