Foundation框架下的常用类--NSDate、NSDateFormatter 、NSTimeZone

【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 = @"yyyyMMdd HH:mm:ss.S";

        

//后设置会顶替原设置

dateFormatter.dateFormat = @"yy-MM-dd ahhmmss";


//设置时区,如果不设,缺省是系统时区

//但是使用了时间戳,有一个好处,就是不用特意设置时区,会自动为你匹配当前系统的时区

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];




你可能感兴趣的:(Foundation框架下的常用类--NSDate、NSDateFormatter 、NSTimeZone)