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];
需求响应动态冰蓄冷系统与需求响应策略的优化研究(Matlab代码实现)内容概要:本文围绕需求响应动态冰蓄冷系统及其优化策略展开研究,结合Matlab代码实现,探讨了在电力需求侧管理背景下,冰蓄冷系统如何通过优化运行策略参与需求响应,以实现削峰填谷、降低用电成本和提升能源利用效率的目标。研究内容包括系统建模、负荷预测、优化算法设计(如智能优化算法)以及多场景仿真验证,重点分析不同需求响应机制下系统的经济性和运行特性,并通过Matlab编程实现模型求解与结果可视化,为实际工程应用提供理论支持和技术路径。; 适合人群:具备一定电力系统、能源工程或自动化背景的研究生、科研人员及从事综合能源系统优化工作的工程师;熟悉Matlab编程且对需求响应、储能优化等领域感兴趣的技术人员。; 使用场景及目标:①用于高校科研中关于冰蓄冷系统与需求响应协同优化的课题研究;②支撑企业开展楼宇能源管理系统、智慧园区调度平台的设计与仿真;③为政策制定者评估需求响应措施的有效性提供量化分析工具。; 阅读建议:建议读者结合文中Matlab代码逐段理解模型构建与算法实现过程,重点关注目标函数设定、约束条件处理及优化结果分析部分,同时可拓展应用其他智能算法进行对比实验,加深对系统优化机制的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值