------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------
简介
NSDate:用于保存时间值的一个OC类,同时提供了一些方法来处理一些与时间相关的事。NSDate对象用来表示一个具体的时间点。NSDate是一个类簇,我们所使用的NSDate对象,都是NSDate的私有子类的实体。NSDate存储的是GMT时间,使用的时候会根据 当前应用 指定的 时区 进行时间上的增减,以供计算或显示。
NSDate
1.时间对象的基本使用
//第一种创建方式(里面存储当前时间(0时区的时间--格林威治时间)) NSDate *date1 = [NSDate date]; //第二种创建方式(创建一个时间,比date1晚5秒钟) NSDate *date2 = [NSDate dateWithTimeInterval:10 sinceDate:date1]; //从1970年到date2之间 间隔的秒数 NSTimeInterval time1 = [date2 timeIntervalSince1970]; //从调用代码到现在的秒数 (NSTimeInterval == double) NSTimeInterval time2 = [date2 timeIntervalSinceNow]; NSLog(@"%lf",time2);
2.时间对象的格式化
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { //第一种创建方式(里面存储当前时间(0时区的时间--格林威治时间)) NSDate *date1 = [NSDate date]; //将NSString转换为NSDate(格式化输出) NSDateFormatter *formate = [[NSDateFormatter alloc]init]; //MM大写表示月份 小写表示分钟,其他一律小写 formate.dateFormat = @"yy-MM-dd hh:mm:ss"; NSString *date = [formate stringFromDate:date1]; NSLog(@"%@",date); //将NSString转换为NSDate(本Xcode存储时候,自动将设置的时间转换为格林威治时间存储) NSString *date2 = @"1992/1/1 10:10:01"; formate.dateFormat = @"yy/MM/dd hh:mm:ss"; NSDate *date3 = [formate dateFromString:date2]; NSLog(@"%@",date3); /************本时区与0时区的时间转换************/ //获得本时区与格林威治时间的时间差,存到time中 NSTimeInterval time = [[NSTimeZone systemTimeZone] secondsFromGMT]; // time/60.0/60.0将time存储的秒转换为小时输出 NSLog(@"时间差为:%f小时",time/60.0/60.0); //将格林威治时间转换为本时区时间 date3 = [date3 dateByAddingTimeInterval:time]; NSLog(@"%@",date3); } return 0; }
参考文献
时间: 2024-10-19 11:49:00