NSDate

本文详细介绍了如何使用NSDate和NSDateFormatter进行日期时间的格式化、转换及计算,包括获取当前时间、不同格式的日期字符串转换、计算两个日期之间的间隔等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//NSDate

   

    NSDate *now = [NSDate date];

    NSLog(@"%@", now);

    

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

    [formatter setTimeZone:[NSTimeZone defaultTimeZone]];//哪个时区

    

    //m:minute  M:月份month  aa:上下午  HH:24小时  hh:12小时制

    //DataFormat 约定时间的格式

    [formatter setDateFormat:@"yyyy-MM-dd  hh:mm:ss aa"];

    

    NSLog(@"%@", [formatter stringFromDate:now]);

    [formatter release];

    

    //NSDate转换成字符串

    //Formatter转换成对应时区的格式,NSdate不分时区,均已标准时区为准

    NSDateFormatter *f1 = [[NSDateFormatter alloc] init];     [f1 setTimeZone:[NSTimeZone defaultTimeZone]];  //f1是系统当前时间

    [f1 setDateFormat:@"yyyy"];   //f1指定输出

    //f1转换成指定格式

    NSString *yearString = [f1 stringFromDate:now];

    int year = [yearString intValue];

    NSLog(@"%d", year);

    [f1 release];

    

    //将字符串转换成NSDate

    NSString *dateString = @"1999-9-9 9:9:9";

    NSDateFormatter *f2 = [[NSDateFormatter alloc] init];

    [f2 setTimeZone:[NSTimeZone defaultTimeZone]]; 

    [f2 setDateFormat:@"yyyy-MM-dd hh:mm:ss"];

    NSDate * date = [NSDate date];

    date = [f2 dateFromString:dateString];

    NSLog(@"%@", date);

    

    //输出所有时区

    NSLog(@"%@", [NSTimeZone knownTimeZoneNames ]);

    // America/Whitehorse 时区输出dateString

    NSTimeZone *zone = [NSTimeZone timeZoneWithName:@"America/Whitehorse"];

    [f2 setTimeZone:zone];

    NSDate *sDate = [f2 dateFromString:dateString];

    NSLog(@"%@", sDate);

    [f2 release];

    

    //计算明天的时间

    NSDate *tomorrow = [NSDate dateWithTimeIntervalSinceNow:60 * 60 * 24];    //时间流失的秒数

    NSDateFormatter *f3 = [[NSDateFormatter alloc] init];

    [f3 setTimeZone:[NSTimeZone defaultTimeZone]];

    [f3 setDateFormat:@"yyyy-MM-dd hh:mm:ss aa"];

    NSLog(@"%@", [f3 stringFromDate:tomorrow]);

    [f3 release];

    

    //计算昨天的时间

    NSDate *yesterDay = [NSDate dateWithTimeIntervalSinceNow:- 60 * 60 * 24];

    NSDateFormatter *f4 = [[NSDateFormatter alloc] init];

    [f4 setTimeZone:[NSTimeZone defaultTimeZone]];

    [f4 setDateFormat:@"yyyy-MM-dd hh:mm:ss aa"];

    NSLog(@"%@", [f4 stringFromDate:yesterDay]);

    [f4 release];

    

    //计算昨天到明天一共间隔多少秒

    //NSTimeIntervaldouble类型

    NSTimeInterval interval = [tomorrow timeIntervalSinceDate:yesterDay];

    NSLog(@"%f", interval);

    NSLog(@"%g", interval); //去掉多余的零

    

    //计算当前时间和⼀一个固定时间的差值,如果差值在60秒内,输出 ”,如果在60秒外3600秒内,输出“xx分钟前”,如果3600秒外, 3600*24秒内,输出“xx⼩小时前   (聊天记录的时间轴)

    NSString *sometimeString = @"2015-2-5 17:15:00";

    NSDateFormatter *f5 = [[NSDateFormatter alloc] init];

    [f5 setTimeZone:[NSTimeZone defaultTimeZone]];

    [f5 setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

    NSDate *sometime = [f5 dateFromString:sometimeString];

    

    NSTimeInterval inter = ABS([sometime timeIntervalSinceNow]);

    if (inter < 60) {

        NSLog(@"刚刚");

    } else if (inter < 3600){

        NSLog(@"%d分钟前", (int)inter / 60);

    } else {

        NSLog(@"%d小时前", (int)inter / 60 / 60);

    }

    [f5 release];

    

    NSString *s = @"20140501 102318";


    NSDateFormatter *f6 = [[NSDateFormatter alloc] init];

    [f6 setTimeZone:[NSTimeZone defaultTimeZone]];

    [f6 setDateFormat:@"yyyy MM dd HH mm ss"];

    NSDate *dt = [f6 dateFromString:s];

    NSLog(@"%@", dt);

    [f6 release];


    

    NSDate *dt1 = [NSDate dateWithdateString:@"20150205124856"];

    NSLog(@"%@",  dt1);


    //Extension(延展)

    /*

    Person *person = [[Person alloc] init];

    [person sayHi];

    [person gotoBed];

    */

    


内容概要:本文档详细介绍了基于MATLAB实现多目标差分进化(MODE)算法进行无人机三维路径规划的项目实例。项目旨在提升无人机在复杂三维环境中路径规划的精度、实时性、多目标协调处理能力、障碍物避让能力和路径平滑性。通过引入多目标差分进化算法,项目解决了传统路径规划算法在动态环境和多目标优化中的不足,实现了路径长度、飞行安全距离、能耗等多个目标的协调优化。文档涵盖了环境建模、路径编码、多目标优化策略、障碍物检测与避让、路径平滑处理等关键技术模块,并提供了部分MATLAB代码示例。 适合人群:具备一定编程基础,对无人机路径规划和多目标优化算法感兴趣的科研人员、工程师和研究生。 使用场景及目标:①适用于无人机在军事侦察、环境监测、灾害救援、物流运输、城市管理等领域的三维路径规划;②通过多目标差分进化算法,优化路径长度、飞行安全距离、能耗等多目标,提升无人机任务执行效率和安全性;③解决动态环境变化、实时路径调整和复杂障碍物避让等问题。 其他说明:项目采用模块化设计,便于集成不同的优化目标和动态环境因素,支持后续算法升级与功能扩展。通过系统实现和仿真实验验证,项目不仅提升了理论研究的实用价值,还为无人机智能自主飞行提供了技术基础。文档提供了详细的代码示例,有助于读者深入理解和实践该项目。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值