NSDateFormatter 日期格式

紀元的顯示:
G:顯示AD,也就是公元
 
年的顯示:
yy:年的後面2位數字
yyyy:顯示完整的年
 
月的顯示:
M:顯示成1~12,1位數或2位數
MM:顯示成01~12,不足2位數會補0
MMM:英文月份的縮寫,例如:Jan
MMMM:英文月份完整顯示,例如:January


日的顯示:
d:顯示成1~31,1位數或2位數
dd:顯示成01~31,不足2位數會補0
 
星期的顯示:
EEE:星期的英文縮寫,如Sun
EEEE:星期的英文完整顯示,如,Sunday

 

上/下午的顯示:
aa:顯示AM或PM


小時的顯示:
H:顯示成0~23,1位數或2位數(24小時制)
HH:顯示成00~23,不足2位數會補0(24小時制)
K:顯示成0~12,1位數或2位數(12小時制)
KK:顯示成0~12,不足2位數會補0(12小時制)


分的顯示:
m:顯示0~59,1位數或2位數
mm:顯示00~59,不足2位數會補0


秒的顯示:
s:顯示0~59,1位數或2位數
ss:顯示00~59,不足2位數會補0
S: 毫秒的顯示

Stackooverflow 上的一个回答:

/* x number xx two digit number xxx abbreviated name xxxx full name a AM/PM A millisecond of day c day of week (c,cc,ccc,cccc) d day of month e day of week (e,EEE,EEEE) F week of month g julian day (since 1/1/4713 BC) G era designator (G=GGG,GGGG) h hour (1-12, zero padded) H hour (0-23, zero padded) L month of year (L,LL,LLL,LLLL) m minute of hour (0-59, zero padded) M month of year (M,MM,MMM,MMMM) Q quarter of year (Q,QQ,QQQ,QQQQ) s seconds of minute (0-59, zero padded) S fraction of second u zero padded year v general timezone (v=vvv,vvvv) w week of year (0-53, zero padded) y year (y,yy,yyyy) z specific timezone (z=zzz,zzzz) Z timezone offset +0000 sql y-M-d H:m:s rss [E, ]d MMM y[y] H:m:s Z|z[zzz] */

This is my comment for date parsing. I use the following, where toDateUsingFormat uses an NSDateFormatter with the passed in string. I do not use a locale, because rss dates are not localized.

 if ( 0 == [string rangeOfString:@","].length ) { result = [string toDateUsingFormat:@"d MMM y H:m:s z"]; } else { result = [string toDateUsingFormat:@"E, d MMM y H:m:s z"]; }

Edit:

I use getObjectValue: instead of dateFromString.

NSDate *result = nil; NSError *error = nil; [dataFormatter getObjectValue:&result forString:dateString errorDescription:&error];

tips:

1、设置时间格式为 “MMM dd,yyyy” ,真机调试的时候会出现 “Mar. 24,2015”这样的情况(模拟器不会出现),多出了一个点,加上这一句就好了。

dateFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];


你可能感兴趣的:(ios,日期格式化,nsdateformatter)