您的位置:首页 > 移动开发 > IOS开发

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

2015-07-05 20:43 671 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: