iOS 日期处理 - 解析日期
要从一个字符串中解析得到准确的时间,必须要指定正确的格式字符串
,以及对应的时区标示
1、日期格式
1.年
2.月
y
将年份 (0-9) 显示为不带前导零的数字yy
以带前导零的两位数字格式显示年份yyy
以四位数字格式显示年份yyyy
以四位数字格式显示年份
M
将月份显示为不带前导零的数字(如一月表示为 1)MM
将月份显示为带前导零的数字(例如 01/12/01)MMM
将月份显示为缩写形式(例如 Jan)MMMM
将月份显示为完整月份名(例如 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.日
d
将日显示为不带前导零的数字(如 1)dd
将日显示为带前导零的数字(如 01)
4.星期
EEE
将日显示为缩写形式(例如 Sun)EEEE
将日显示为全名(例如 Sunday)
- 星期一 Mon Monday
- 星期二 Tue Tuesday
- 星期三 Wed Wednesday
- 星期四 Thu Thursday
- 星期五 Fri Friday
- 星期六 Sat Saturday
- 星期天 Sun Sunday
5.小时
h
使用 12 小时制将小时显示为不带前导零的数字(例如 1:15:15 PM)hh
使用 12 小时制将小时显示为带前导零的数字(例如 01:15:15 PM)H
使用 24 小时制将小时显示为不带前导零的数字(例如 1:15:15)HH
使用 24 小时制将小时显示为带前导零的数字(例如 01:15:15)
6.分钟
m
将分钟显示为不带前导零的数字(例如 12:1:15)mm
将分钟显示为带前导零的数字(例如 12:01:15)7.秒
8.上午,下午
s
将秒显示为不带前导零的数字(例如 12:15:5)ss
将秒显示为带前导零的数字(例如 12:15:05)f
显示秒的小数部分ff
将精确显示到百分之一秒ffff
将精确显示到万分之一秒- 用户定义格式中最多可使用七个 f 符号
t
使用 12 小时制
- 中午之前任一小时显示大写的 A
- 中午到 11:59 PM 之间的任一小时显示大写的 P
tt
对于使用 12 小时制的区域设置
- 中午之前任一小时显示大写的 AM
- 中午到 11:59 PM 之间的任一小时显示大写的 PM
- 对于使用 24 小时制的区域设置,不显示任何字符
9.时区
z
显示不带前导零的时区偏移量zz
显示带前导零的时区偏移量(例如 -08)zzz
显示完整的时区偏移量(例如 -0800)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 创建分类
3、日期处理类 NSCalendar
/// 从字符串中解析到准确时间 // 参数 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) }
。。。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。