iOS-NSDate
一.概念解释
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) / ( * * );
NSLog(@"days = %d",days); //计算相隔小时数
int hours = (time) / ( * );
NSLog(@"hours = %d",hours); //计算相隔分钟数
int mintues = (time) / ();
NSLog(@"mintues = %d",mintues); //计算相隔秒数
int seconds = (time) / ();
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-NSDate的更多相关文章
- IOS NSDate NSDateFormatter 导致相差8小时
时间问题应该是所有编程语言都要处理的.详细学过php的同学知道,php中也会有相差8小时的问题,然而php可以非常方便的解决的,直接设置下就好了 我最近在学习IOS的过程中,发现IOS的日期处理也是个 ...
- iOS NSDate等时间类的使用
一.NSDate NSDate对象用来表示一个具体的时间点. NSDate是一个类簇,我们所使用的NSDate对象,都是NSDate的私有子类的实体. NSDate存储的是GMT时间,使用的时候会根据 ...
- iOS NSDate本地化
1. NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init]; [outputFormatter setLocale:[NS ...
- iOS NSDate与NSString相互转化
1.时间格式的字符串转date NSString *birthdayStr=@"1986-03-28 00:00:00.000"; NSDateFormatter *dateFor ...
- iOS NSDate获取当前时间并格式化
NSDateFormatter *formatter = [[NSDateFormatter alloc]init]; [formatter setDateFormat:@"yyyy-MM- ...
- iOS NSDate、NSCalendar、NSDateComponents
时间解析(NSDate.NSCalendar.NSDateComponents): 1.使用NSCalendar和NSDateComponents解析日期,直接获取到年月日时分秒.获取到年月日时分秒其 ...
- iOS NSDate计算时间间隔
//获取开始时间 NSDate* tmpStartData = [NSDate date]; /*( 执行代码段 )*/ ; i<; i++) { DLog(@"%d",i) ...
- iOS NSDate与NSString之间的相互转换
假如我们需要把当前的时间当成一个字符串作为一张图片的名字的话,就需要把当前的时间NSDate类型的数据转换成NSString类型. 又或者在网络请求的时候,我们在网络上的到时间是一个字符串但是在本地就 ...
- iOS ----------NSDate 、CFAbsoluteTimeGetCurrent、CACurrentMediaTime 的区别
框架层: NSDate 属于Foundation CFAbsoluteTimeGetCurrent() 属于 CoreFoundatio CACurrentMediaTime() 属于 QuartzC ...
- IOS NSDate 调整当前时间戳为明天
这个可以根据需要调整 在day month hour minute second 等都行 以下是以当前时间戳为基础,调整时间为明天的零点零时零分零秒 可以根据需要 写成毫秒的 +(NSStri ...
随机推荐
- C#Winform程序如何发布并自动升级(图解)
C#Winform程序如何发布并自动升级(图解) 有不少朋友问到C#Winform程序怎么样配置升级,怎么样打包,怎么样发布的,在这里我解释一下打包和发布 关于打包的大家可以看我的文章C# w ...
- windows10 qt5 mingw32编译cryptopp563
windows10 qt5 mingw32编译cryptopp563 参考链接: http://www.qtcentre.org/threads/28809-Compiling-amp-using-C ...
- 【简单易懂的AMV图文教程-2】VEGAS基础进阶——认识关键帧
[简单易懂的AMV图文教程-2]VEGAS基础进阶--认识关键帧 经过了上一期VEGAS基础教程的学习,相信大家都能独立完成一些比较简单的纯剪辑作品了.今天在这里为大家继续介绍VEGAS的一大基础应用 ...
- Android带多选功能的PhotoPicker
最近利用闲碎的一些时间开发了一个Android库PhotoPicker,前面一篇文章也介绍了,Android高仿微信图片选择功能的PhotoPicker,之前没有加入选择多张图片的功能,现在加上之后一 ...
- Microsoft Fakes
http://baike.baidu.com/view/9602275.htm?fr=aladdin http://technet.microsoft.com/zh-cn/magazine/hh549 ...
- wdlinux 一键安装
Linux系统(支持CentOS 6.X/7.X.RedHat 6.X.Ubuntu 12.04): ssh登录服务器,执行如下操作即可,需root用户身份安装 wget http://dl.wdli ...
- memcached命令
memcached相对于redis来说,简直简单太多,命令也少很多,一般应用都是使用redis,但了解一下也还是不错的. 具体命令和用法很参见:http://www.runoob.com/memcac ...
- 把C编译成javascript的方法
把C编译成javascript的方法,便于嵌入到HTML5中 https://github.com/kripken/emscripten
- 【黑金原创教程】【FPGA那些事儿-驱动篇I 】【实验一】流水灯模块
实验一:流水灯模块 对于发展商而言,动土仪式无疑是最重要的任务.为此,流水灯实验作为低级建模II的动土仪式再适合不过了.废话少说,我们还是开始实验吧. 图1.1 实验一建模图. 如图1.1 所示,实验 ...
- HBase - Phoenix剖析
1.概述 在<Hadoop-Drill深度剖析>一文当中,给大家介绍了Drill的相关内容,就实时查询来说,Drill基本能够满足要求,同时还可以做一个简单业务上的聚合,如果在使用Hive ...