iOS-NSDate
2016-01-21 19:13
363 查看
一.概念解释
1.什么是NSTimeZone?
NSTimeZone:时区是一个地理名字,是为了克服各个地区或者国家之间在时间上的混乱设定的。
1).GMT:0:00格林威治标准时间;UTC +00:00校准的全球时间;CCD +08:00中国的标准时间;
2).任何时区都以GMT为基准,即任何NSTimeZone对象所代表的时区都是相对于GMT的,这里的相对性是NSTimeZone中的一个重要的属性,我们称之为当前时区相对于GMT的偏移量,一旦知道了一个偏移量,便可以确定一个时区。在iOS中,偏移量是以"秒"为单位的。
3).iOS中的时间类NSDate中存储的时间,都是相对于GMT的,我们使用NSDate的时候,会根据App的时区设置返回与时区对应的数据。
4).iOS中的时区表示方法:GMT+0800 GMT-0800;(+:东区 -:西区; 前两位是小时数,后两位是分钟数)。GMT+0830意思是比GMT早8小时外加30分钟的时区。
2.NSDate类是以GTM时间为标准的。
二.获取此时此地的时间,并以规定的格式显示
说明:
1.YYYY(年)/MM(月)/dd(日) hh(时):mm(分):ss(秒) SS(毫秒)
需要用哪个的话就把哪个格式加上去。
2.值得注意的是,如果想显示两位数的年份的话,可以用”YY/MM/dd hh:mm:ss SS”,两个Y代表两位数的年份。
3.而且大写的M和小写的m代表的意思也不一样。“M”代表月份,“m”代码分钟
4.“HH”代表24小时制,“hh”代表12小时制
三.计算两个时间点相隔时间
四.判断两个时间的关系:相同,大于,小于。
1.什么是NSTimeZone?
NSTimeZone:时区是一个地理名字,是为了克服各个地区或者国家之间在时间上的混乱设定的。
1).GMT:0:00格林威治标准时间;UTC +00:00校准的全球时间;CCD +08:00中国的标准时间;
2).任何时区都以GMT为基准,即任何NSTimeZone对象所代表的时区都是相对于GMT的,这里的相对性是NSTimeZone中的一个重要的属性,我们称之为当前时区相对于GMT的偏移量,一旦知道了一个偏移量,便可以确定一个时区。在iOS中,偏移量是以"秒"为单位的。
3).iOS中的时间类NSDate中存储的时间,都是相对于GMT的,我们使用NSDate的时候,会根据App的时区设置返回与时区对应的数据。
4).iOS中的时区表示方法:GMT+0800 GMT-0800;(+:东区 -:西区; 前两位是小时数,后两位是分钟数)。GMT+0830意思是比GMT早8小时外加30分钟的时区。
2.NSDate类是以GTM时间为标准的。
二.获取此时此地的时间,并以规定的格式显示
NSDate * dateNow=[NSDate date]; NSDateFormatter *dateformatter = [[NSDateFormatter alloc] init]; [dateformatter setDateFormat:@"YYYY-MM-dd hh:mm:ss"]; NSString *locationString = [dateformatter stringFromDate:dateNow]; NSLog(@"locationString:%@",locationString);
说明:
1.YYYY(年)/MM(月)/dd(日) hh(时):mm(分):ss(秒) SS(毫秒)
需要用哪个的话就把哪个格式加上去。
2.值得注意的是,如果想显示两位数的年份的话,可以用”YY/MM/dd hh:mm:ss SS”,两个Y代表两位数的年份。
3.而且大写的M和小写的m代表的意思也不一样。“M”代表月份,“m”代码分钟
4.“HH”代表24小时制,“hh”代表12小时制
三.计算两个时间点相隔时间
NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyy-MM-dd HH-mm-ss"]; NSString * startTimeStr = @"2016-01-21 18:40:20"; NSString * endTimeStr = @"2016-01-22 18:40:20"; NSDate * date1 = [dateFormatter dateFromString:startTimeStr]; NSDate * date2 = [dateFormatter dateFromString:endTimeStr]; //获取两个NSDate类型的时间区间(以秒为单位) NSTimeInterval time = [date2 timeIntervalSinceDate:date1]; NSLog(@"%f",time); //计算相隔天数 int days = (time) / (24 * 60 * 60); NSLog(@"days = %d",days); //计算相隔小时数 int hours = (time) / (60 * 60); NSLog(@"hours = %d",hours); //计算相隔分钟数 int mintues = (time) / (60); NSLog(@"mintues = %d",mintues); //计算相隔秒数 int seconds = (time) / (1); NSLog(@"seconds = %d",seconds);
四.判断两个时间的关系:相同,大于,小于。
NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyy-MM-dd HH-mm-ss"]; NSString * startTimeStr = @"2016-01-21 18:40:20"; NSString * endTimeStr = @"2016-01-22 18:40:20"; NSDate * date1 = [dateFormatter dateFromString:startTimeStr]; NSDate * date2 = [dateFormatter dateFromString:endTimeStr]; NSComparisonResult result = [date2 compare:date1]; /**NSComparisonResult NSOrderedAscending 降序 NSOrderedSame 相等 NSOrderedDescending 升序 */ if (result == NSOrderedDescending) { NSLog(@"date2 > date1"); } else { NSLog(@"date2 < date1"); }
相关文章推荐
- iOS AFNetworking 图片上传(修改用户头像功能)
- iOS实现图像的反色,怀旧,色彩直方图效果
- iOS开发之详解剪贴板
- iOS 忽略SIGPIPE的问题
- iOS 导航栏按钮封装
- Xcode如何删除已安装的插件
- iOS - block的简单使用
- ios中代码打开app store
- iOS 单击手势和双击手势冲突问题
- iOS安全笔记
- 线程与进程的区别和联系
- IOS常用正则表达式
- iOS开发--代码块 (得到状态栏,导航栏高度)
- iOS开发之Xcode6之后不再自动创建Pch预编译文件
- iOS block简单使用
- IOS中定时器NSTimer的开启与关闭
- IOS8之后ActionSheet和ActionView合体,简单更好用
- Hadoop YARN学习之监控集群监控Nagios(4)
- Hadoop YARN学习之监控集群监控Nagios(4)
- iOS-根据文本的长度确定label的宽高