要从一个字符串中解析得到准确的时间,必须要指定正确的格式字符串,以及对应的时区标示

1、日期格式

1.年



yyyyyyyyyy


2.月



MMMMMMMMMM

  •  将月份显示为完整月份名(例如 January)
  • 一月 Jan January
  • 二月 Feb February
  • 三月 Mar March
  • 四月 Apr April
  • 五月 May May
  • 六月 Jun June
  • 七月 Jul July
  • 八月 Aug August
  • 九月 Sep September
  • 十月 Oct October
  • 十一月 Nov November
  • 十二月 Dec December



3.日


ddd


4.星期


EEEEEEE

  •  将日显示为全名(例如 Sunday)
  • 星期一 Mon Monday
  • 星期二 Tue Tuesday
  • 星期三 Wed Wednesday
  • 星期四 Thu Thursday
  • 星期五 Fri Friday
  • 星期六 Sat Saturday
  • 星期天 Sun Sunday



5.小时


hhhHHH


6.分钟


mmm


7.秒


sssfffffff

  • 用户定义格式中最多可使用七个 f 符号



8.上午,下午


t

  •  使用 12 小时制
  • 中午之前任一小时显示大写的 A
  • 中午到 11:59 PM 之间的任一小时显示大写的 P

tt

  •  对于使用 12 小时制的区域设置
  • 中午之前任一小时显示大写的 AM
  • 中午到 11:59 PM 之间的任一小时显示大写的 PM
  • 对于使用 24 小时制的区域设置,不显示任何字符


9.时区


zzzzzz

10. 范例

/// 根据指定的日期字符串创建日期 /// dateSring 日期字符串 /// 日期字符串格式为:"Sun May 24 13:59:03 +0800 2015" class func createDate(dateSring: String) -> NSDate? { let df = NSDateFormatter() df.locale = NSLocale(localeIdentifier: "ch") df.dateFormat = "EEE MMM dd HH:mm:ss zzz yyyy" return df.dateFromString(dateSring) }



2、为NSDate 创建分类


/// 从字符串中解析到准确时间 // 参数 dateString 为时间字符串 formatString 为时间字符串对应的格式 class func getDate(dateString: String, formatString: String) -> NSDate? { // dateFormatter // 1. 实例化 let df = NSDateFormatter() // 2. 要指定日期的地区,Xcode 6.3 beta 还不需要,地区需要指定英语 // 注意:在真机调试的时候,一定要指定区域,否则以前版本同样无法转换 df.locale = NSLocale(localeIdentifier: "en") // 3. 设置日期格式 df.dateFormat = formatString // 4. 生成日期 return df.dateFromString(dateString) }



3、日期处理类 NSCalendar


。。。