一、日期类简单介绍
对日期我们经常使用到的两个类
1、NSDate,NSDate的对象表示一个具体的时间点
2、NSDateFormatter对象将时间转化为字符串或者反转
二、创建NSDate对象的几种方式以及区别
1、获取到GTM时间(世界标准时间),比中国时间早八个小时
NSDate *data = [NSDate date];
2、从当前GTM时间往后推八个小时的时间,如果为负数就是往前推八个小时的时间
NSTimeInterval timeInterval = 8*60*60;
NSDate *chinaDate = [NSDate dateWithTimeIntervalSinceNow:timeInterval];
3、从计算机时间(1970-01-01 00:00:00)后推八个小时后的时间。
NSDate *since1970Date = [NSDate dateWithTimeIntervalSince1970:timeInterval];
4、从自定义的时间往后推八个小时后的时间。
NSDate *sinceCustomDate = [NSDate dateWithTimeInterval:timeInterval sinceDate:date];
5、从2001-01-01 00:00:00往后推八个小时后的时间。
NSDate *sinceReferenceDate = [NSDate dateWithTimeIntervalSinceReferenceDate:timeInterval];
6、永远不可能到达的一个点
NSDate *futureDate = [NSDate distantFuture];
7、一个无限过去的时间点
NSDate *pastDate = [NSDate distantPast];
三、NSDate对象常用的方法
1、从计算机时间(1970-01-01 00:00:00)到date时间的时间差(秒为单位)
timeIntervalSince1970
2、从(2001-01-01 00:00:00)到date时间的时间差(秒为单位)
timeIntervalSinceReferenceDate
3、从当前时间到date时间的时间差
timeIntervalSinceNow
4、当前时间偏移多少秒后的新时间
dateByAddingTimeInterval
5、两个日期之间的时间差
timeIntervalSinceDate
6、日期的比较
earlierDate//谁早返回谁
laterDate//谁晚返回谁
isEqualToDate//两个日期是否相等
四、日期与字符串的转换
1、日期格式如下:
y 年
F 月份中的周数
E 周几,EEEE星期几
M 表示 月
m 表示 分
H 表示 24小时制
h 表示 12小时制
s 表示 秒
S 表示 毫秒
d 月份中的天数
a Am/pm
k 一天中的小时数(1-24)
K am/pm 中的小时数(0-11)
H 一天中的小时数
h am/pm 中的小时数(1-12)
2、字符串与日期的转换
1)将日期转换为字符串,转换过后就自动换成系统所在时区的时间
[dateFormatter stringFromDate:date]
2)将字符串转化为日期
[dateFormatter dateFromString:str]