您的位置:首页 > 其它

一个日期转换时需要注意的问题

2017-08-01 17:06 239 查看
  当将一个形式为@"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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: