NSDate iOS 日期

本文详细介绍了NSDate对象的多种创建方法,包括直接创建、基于当前时间间隔、指定日期间隔等,并讲解了日期格式化、时间比较及时间差计算等功能。
1.NSDate对象用来表示一个具体的时间点。
2.NSDate存储的是GMT时间,使用的时候会根据 当前应用 指定的 时区 进行时间上的增减,以供计算或显示
(1) 日期的创建
+ (instancetype)date;
NSDate *nowDate = [NSDate date];
如上直接创建nowDate ,其现实的是0时区,也就是格林威治时间,如果要显示北京时间,需要进行转换
[nowDate descriptionWithLocale:[NSLocale currentLocale]]; //北京时间
(2)利用与当前时间的间隔来进行时间的创建
+ (instancetype)dateWithTimeIntervalSinceNow:(NSTimeInterval)secs;
NSDate *date1 = [NSDate dateWithTimeIntervalSinceNow:+60*60*24*30];
其中加号表示时间往前也就是未来时间点 第一个60是表示的秒 第二个时间是分钟 第三个时间是小时 第四个时间是天数 date1表示的时间是距今未来的第30天
其中的加号也可以换成减号,来表示过去的时间。
(3)利用与指定的时间的间隔来创建日期
+ (instancetype)dateWithTimeInterval:(NSTimeInterval)secsToBeAdded sinceDate:(NSDate *)date;
NSDate *date2 = [NSDate dateWithTimeInterval:+60*3 sinceDate:date1];
date2 的时间 距 date1的时间又 3 分钟
(4)利用与2001年的时间间隔来创建日期
+ (instancetype)dateWithTimeIntervalSinceReferenceDate:(NSTimeInterval)ti;
NSDate *date3 = [NSDate dateWithTimeIntervalSinceReferenceDate: +0 ];
date3 表示的是与 2001年1月1日0点0分0秒 的时间间隔为 0 。
(5)利用与1970年的时间间隔来创建时间
+ (instancetype)dateWithTimeIntervalSince1970:(NSTimeInterval)secs;
NSDate *date4 = [NSDate dateWithTimeIntervalSince1970:+60];
(6)未来的某一天
+ (NSDate *)distantFuture;
NSLog(@'%@',[NSDate distantFuture]);
输出的一直是4001年1月1日
(7)过去的某一天
+ (NSDate *)distantPast;
NSLog(@'%@',[NSDate distantPast]);
输出的一直是0000年12月30日
(8)日期格式化
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
[formatter setDateFormat:@'yyyy-MM-dd HH:mm:ss '];
NSString *dateStr = [formatter stringFromDate:nowDate];
将日期转换为字符串格式,便于操作。
其中 yyyy表示年份 MM表示月份 dd表示日期 HH表示小时 mm表示分钟 ss表示秒
还可以将日期格式的字符串还原成日期
NSDate *dates = [formatter dateFromString:dateStr];
(9)时间比较
NSComparisonResult result =[date1 compare:date2];
if(result ==NSOrderedDescending)
{
NSLog(@'date1 时间晚');
}else if(result == NSOrderedAscending)
{
NSLog(@'date2 时间晚');
}else
{
NSLog(@'date1 date2 时间相等');
}
(10)计算时间差
double dateDifference = [date1 timeIntervalSinceNow];
date1 与现在时间相差多少秒
(11)两时间比较
NSLog(@'%@',[date1 laterDate:date2]);
得到较晚的时间,返回的事NSDate类型
NSLog(@'%@',[date1 earlierDate:date2]);
得到较早的时间,返回的事NSDate类型
(12)判断两个日期是否相等
BOOL isEqual = [date2 isEqualToDate:date2];
根据原作 https://pan.quark.cn/s/0ed355622f0f 的源码改编 野火IM解决方案 野火IM是专业级即时通讯和实时音视频整体解决方案,由北京野火无限网络科技有限公司维护和支持。 主要特性有:私有部署安全可靠,性能强大,功能齐全,全平台支持,开源率高,部署运维简单,二次开发友好,方便与第三方系统对接或者嵌入现有系统中。 详细情况请参考在线文档。 主要包括一下项目: 野火IM Vue Electron Demo,演示如何将野火IM的能力集成到Vue Electron项目。 前置说明 本项目所使用的是需要付费的,价格请参考费用详情 支持试用,具体请看试用说明 本项目默认只能连接到官方服务,购买或申请试用之后,替换,即可连到自行部署的服务 分支说明 :基于开发,是未来的开发重心 :基于开发,进入维护模式,不再开发新功能,鉴于已经终止支持且不再维护,建议客户升级到版本 环境依赖 mac系统 最新版本的Xcode nodejs v18.19.0 npm v10.2.3 python 2.7.x git npm install -g node-gyp@8.3.0 windows系统 nodejs v18.19.0 python 2.7.x git npm 6.14.15 npm install --global --vs2019 --production windows-build-tools 本步安装windows开发环境的安装内容较多,如果网络情况不好可能需要等较长时间,选择早上网络较好时安装是个好的选择 或参考手动安装 windows-build-tools进行安装 npm install -g node-gyp@8.3.0 linux系统 nodej...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值