首页 > 代码库 > 一个日期转换时需要注意的问题

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

  当将一个形式为@"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

 

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