【NSDate】
【注】NSDate是时间类,可以创建一个时间点的对象。
【另】面向对象程序讲究一切事物皆对象,无论是具象事物还是抽象事物。
+ (id)date;
返回系统时间
+ (id)dateWithTimeIntervalSinceNow:(NSTimeInterval)secs;
返回以当前时间为基准,然后过了secs秒的时间
+ (id)dateWithTimeIntervalSinceReferenceDate:(NSTimeInterval)
secs;
返回以2001/01/01 GMT为基准,然后过了secs秒的时间
+ (id)dateWithTimeIntervalSince1970:(NSTimeInterval)secs;
返回以1970/01/01 GMT为基准,然后过了secs秒的时间
- (NSTimeInterval)timeIntervalSinceNow;
以当前时间(Now)为基准时间,返回实例保存的时间与当前时间(Now)的时 间间隔
- (NSTimeInterval)timeIntervalSince1970;
以1970/01/01 GMT为基准时间,返回实例保存的时间与1970/01/01 GMT 的时间间隔
- (NSTimeInterval)timeIntervalSinceReferenceDate;
以2001/01/01 GMT为基准时间,返回实例保存的时间与2001/01/01 GMT 的时间间隔
//以下方式多用于定时器的开启和停止
//遥远的未来---永久性休眠定时器
+ (id)distantFuture;
返回很多年以后的未来的某⼀一天。 比如你需要⼀一个比现在(Now)晚(大)很长时间的时间值,则可以调用该方法。
//很早的过去 --开启定时器
+ (id)distantPast;
返回很多年以前的某⼀一天。
比如你需要⼀一个比现在(Now)早(小)大很长时间的时间值,则可以调用该方 法。
+(id)dataWithTimeInterval:(参数1) sinceDate:(参数2);
返回从参数2开始,过了参数1的时间后的时间
- (id)addTimeInterval:(NSTimeInterval)secs;
返回以目前的实例中保存的时间为基准,然后过了secs秒的时间
【NSTimeZone】
【注】时区类,用于时区转换
+ (NSTimeZone *)systemTimeZone;
//返回当前系统时区
+ (NSDictionary *)abbreviationDictionary;
//返回TimeZone支持时区的键值对
+ (id)timeZoneWithAbbreviation:(NSString *)abbreviation;
//通过传入键值对的键,创建对应的时区对象。
【NSDateFormatter】
【注】时间戳,用于显示时间
/*
yyyy 表示四位数的年
yy 表示两位数的年
MM 表示月
dd 表示日
HH 表示24进制的时
hh 表示12进制的时
ahh 表示12进制的时,显示 am ,pm
mm 表示分
ss 表示秒
S 表示毫秒
*/
//创建时间戳
NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init];
//使用时间戳的目的,是为了自定义时间的打印格式
dateFormatter.dateFormat = @"yyyy年MM月dd日 HH:mm:ss.S";
//后设置会顶替原设置
dateFormatter.dateFormat = @"yy-MM-dd ahh时mm分ss秒";
//设置时区,如果不设,缺省是系统时区
//但是使用了时间戳,有一个好处,就是不用特意设置时区,会自动为你匹配当前系统的时区
dateFormatter.timeZone = [NSTimeZone timeZoneWithAbbreviation:@"CST"];
//根据风格,返回时间打印的字符串
NSLog(@"%@", [dateFormatter stringFromDate:date]);
从字符串中获取时间
//例如:NSString *time=[NSString stringWithFormat:@"2014年11月11日"];
// NSDateFormatter *ft=[[NSDateFormatter alloc]init];
//设置时区,东八区
ft.timeZone = [NSTimeZone timeZoneWithAbbreviation:@"CST"];
NSData *data=[ft dataWithString:time];