iOS阶段学习第15天笔记(NSDate操作)

iOS学习(OC语言)知识点整理

 

一、OC关于NSDate类的操作实例代码

 

 1 //默认直接显示对象,显示的是格林威治时间       
 2 //获取当前日期时间的实例方法     
 3 NSDate *date1=[[NSDate alloc]init];    
 4 NSLog(@"date1:%@",date1);    
 5 
 8 //获取当前日期时间的方法二:类方法    
 9 NSDate *date2=[NSDate date];   
10 NSLog(@"date2:%@",date2);  
11  
12 //获取从1970年1月1日00:00到date2的秒数       
13 NSTimeInterval interval= [date2 timeIntervalSince1970];  

12 //循环操作为了体现时间差    
13 for(int i=0;i<10000;i++){}   
14 //计算两个时间差(秒数)     
15 interval=[date2 timeIntervalSinceDate:date1];  
16    
17 //date2距现在的时间差      
18 interval=[date1 timeIntervalSinceNow];       
19 NSLog(@"%f",interval);   
20             
21 //实例方法:得到date2的后一天的时间对象    
22 NSDate *date3=[date2 dateByAddingTimeInterval:24*3600];       
23 NSLog(@"date3:%@",date3); 
24 
25 //类方法:得到距date2多少秒后的一个日期时间对象     
26 NSDate *date4=[NSDate dateWithTimeInterval:24*3600 sinceDate:date2];     
27 NSLog(@"date4:%@",date4);       
28 
29 //得到距现在多少秒后的一个日期时间对象      
30 NSDate *date5=[NSDate dateWithTimeIntervalSinceNow:3*24*3600];   
31 NSLog(@"date5:%@",date5);     
32 
33 //获取将来的一个日期时间对象       
34 NSDate *date6=[NSDate distantFuture];        
35 NSLog(@"date6:%@",date6);     
36 
37 //获取过去的一个日期时间对象    
38 NSDate *date7=[NSDate distantPast];       
39 NSLog(@"date7:%@",date7);       
40 
41 //对日期时间对象做格式化操作的类      
42 NSDateFormatter *format=[[NSDateFormatter alloc]init];     
43 //设置日期的样式     
44 [format setDateStyle:NSDateFormatterMediumStyle];    
45 //设置时间的样式      
46 [format setTimeStyle:NSDateFormatterMediumStyle];
47 NSString *styledate= [format stringFromDate:date1]; 
48 NSLog(@"styledate:%@",styledate);
47 //自定义格式字符串   
48 [format setDateFormat:@"yyyy-MM-dd hh:mm:ss"]; 
49 //将NSDate对象转换为字符串   
50 NSString *sdate=[format stringFromDate:date1];        
51 NSLog(@"sdate:%@",sdate);        
52   
53 NSString *str=@"2015-07-10 12:10:30";    
54 //将字符串形式的日期时间转换为NSDate对象(保证字符串的形式与format中的形式一致)       
55 NSDate *date8=[format dateFromString:str];        
56 NSLog(@"date8:%@",date8);  
57 
58 NSDate *newdate=[NSDate date];
59 //时间格式化字符串
60 NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
61 [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss MMM eee a"];
62 NSString *strdate = [formatter stringFromDate:newdate];
63 NSLog(@"%@",strdate);
64 
65 //时间字符串转换为时间类型
66 NSDateFormatter * formatter2 = [[NSDateFormatter alloc]init];
67 NSString * nstr =@"2014年05月01日 10点23分18秒";
68 [formatter2 setDateFormat:@"yyyy年MM月dd日  hh点mm分ss秒"];
69 NSDate * date3 = [formatter2 dateFromString:nstr];
70 //解决时分秒转换不准确问题
71 NSTimeZone *fzone = [NSTimeZone systemTimeZone];
72 NSInteger finterval = [fzone secondsFromGMTForDate: date3];
73 NSDate *fDate = [date3  dateByAddingTimeInterval: finterval];
74 NSLog(@"%@",fDate);
75 
76 //获取系统时间的年月日时分秒部分
77 NSCalendar *cal = [NSCalendar currentCalendar];
78 //Mac 10.10以前的系统使用 NSYearCalendarUnit
79 unsigned int unitFlags = NSCalendarUnitYear |NSCalendarUnitMonth|NSCalendarUnitDay|NSCalendarUnitHour|NSCalendarUnitMinute|NSCalendarUnitSecond;
80 NSDateComponents *d = [cal components:unitFlags fromDate:newdate];
81 NSLog(@"年=%ld",[d year]);
82 NSLog(@"月=%ld",[d month]);
83 NSLog(@"日=%ld",[d day]);
84 NSLog(@"时=%ld",[d hour]);
85 NSLog(@"分=%ld",[d minute]);
86 NSLog(@"秒=%ld",[d second]);
87 
88 //将传入时间字符串转换成需要的时间格式
89 NSString *dateStr=@"2013-08-13 20:28:40";
90 NSDateFormatter *format=[[NSDateFormatter alloc] init];
91 [format setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
92 NSDate *fromdate=[format dateFromString:dateStr];
93 //解决时分秒转换不准确问题
94 NSTimeZone *fromzone = [NSTimeZone systemTimeZone];
95 NSInteger frominterval = [fromzone secondsFromGMTForDate: fromdate];
96 NSDate *fromDate = [fromdate  dateByAddingTimeInterval: frominterval];
97 NSLog(@"fromdate=%@",fromDate); 
98  
原文地址:https://www.cnblogs.com/ChinaKingKong/p/4622956.html