首页 > 代码库 > 一个日期转换时需要注意的问题
一个日期转换时需要注意的问题
当将一个形式为@"Tue Aug 01 16:12:41 +0800 2017"的字符串转换成NSDate时,需要NSDateFormatter设置本地化信息NSLocale,否则会出现转换失败
NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
fmt.dateFormat = @"EEE MMM dd HH:mm:ss zzzz yyyy";//@"Tue Aug 01 16:12:41 +0800 2017"
NSLocale* local = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[fmt setLocale:local];
NSDate *createdDate = [fmt dateFromString:_created_at];
最后附上格式字符含义:
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: 毫秒
z:显示不带前导零的时区偏移量(如 -8)。如果这是用户定义的数字格式中的唯一字符,请使用 %z。
zz:显示带前导零的时区偏移量(例如 -08)
zzz:显示完整的时区偏移量(例如 -08:00
一个日期转换时需要注意的问题