NSDate 的一些操作(比较、创建、在现有date加减一定时间等)

2023-10-05 04:40

本文主要是介绍NSDate 的一些操作(比较、创建、在现有date加减一定时间等),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


创建当前时间

NSDate *date = [NSDate date];

从现在开始的24小时

        NSTimeInterval a_day = 24*60*60;

        NSDate *tomorrow = [NSDate dateWithTimeIntervalSinceNow:a_day];

根据已有日期创建日期

        NSTimeInterval a_day = 24*60*60;NSDate *date = [NSDate date];NSDate *tomorrow = [date addTimeInterval: date];

日期比较

        BOOL isEqual = [date isEqualToDate:tomorrow];if(isEqual){NSLog(@"equal");}

//获取较早的日期

      NSDate *earlier_date = [tomorrow earlierDate:date];NSLog(@"earlierDate  = %@",earlierDate);

//较晚的日期

        NSDate *laterDate = [tomorrow laterDate:date];NSLog(@"laterDate  = %@",laterDate);

//两个日期之间相隔多少秒

        NSTimeInterval secondsInterval= [date timeIntervalSinceDate:tomorrow];NSLog(@"secondsInterval=  %lf",secondsInterval);

 //通过NSCalendar类来创建日期

        NSDateComponents *comps = [[NSDateComponentsalloc]init];[comps setMonth:01];[comps setDay:31];[comps setYear:2013];NSCalendar *calendar = [[NSCalendaralloc]initWithCalendarIdentifier:NSGregorianCalendar];NSDate *date = [calendar dateFromComponents:comps];

 //从已有日期获取日期

        unsigned units  = NSMonthCalendarUnit|NSDayCalendarUnit|NSYearCalendarUnit;NSDateComponents *_comps = [calendar components:units fromDate:date];NSInteger month = [_comps month];NSInteger year = [_comps year];NSInteger day = [_comps day];//NSDateFormatter实现日期的输出NSDateFormatter *formatter = [[NSDateFormatteralloc]init];[formatter setDateStyle:NSDateFormatterFullStyle];//直接输出的话是机器码//或者是手动设置样式[formatter setDateFormat:@"yyyy-mm-dd"];NSString *dateString = [formatter stringFromDate:date];NSLog(@"dateString = %@",dateString);NSLog(@"formater = %@",formatter);

//获取日期格式对象

- (NSDateFormatter *)getDateFormatter {if (dateFormatter == nil) {dateFormatter = [[NSDateFormatter alloc] init];[dateFormatter setDateStyle:NSDateFormatterMediumStyle];[dateFormatter setTimeStyle:NSDateFormatterNoStyle];}return dateFormatter;
}


这篇关于NSDate 的一些操作(比较、创建、在现有date加减一定时间等)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/3405

相关文章

MySQL 用户创建与授权最佳实践

《MySQL用户创建与授权最佳实践》在MySQL中,用户管理和权限控制是数据库安全的重要组成部分,下面详细介绍如何在MySQL中创建用户并授予适当的权限,感兴趣的朋友跟随小编一起看看吧... 目录mysql 用户创建与授权详解一、MySQL用户管理基础1. 用户账户组成2. 查看现有用户二、创建用户1. 基

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

C++ 函数 strftime 和时间格式示例详解

《C++函数strftime和时间格式示例详解》strftime是C/C++标准库中用于格式化日期和时间的函数,定义在ctime头文件中,它将tm结构体中的时间信息转换为指定格式的字符串,是处理... 目录C++ 函数 strftipythonme 详解一、函数原型二、功能描述三、格式字符串说明四、返回值五

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

从基础到进阶详解Pandas时间数据处理指南

《从基础到进阶详解Pandas时间数据处理指南》Pandas构建了完整的时间数据处理生态,核心由四个基础类构成,Timestamp,DatetimeIndex,Period和Timedelta,下面我... 目录1. 时间数据类型与基础操作1.1 核心时间对象体系1.2 时间数据生成技巧2. 时间索引与数据

Java中实现线程的创建和启动的方法

《Java中实现线程的创建和启动的方法》在Java中,实现线程的创建和启动是两个不同但紧密相关的概念,理解为什么要启动线程(调用start()方法)而非直接调用run()方法,是掌握多线程编程的关键,... 目录1. 线程的生命周期2. start() vs run() 的本质区别3. 为什么必须通过 st

Linux链表操作方式

《Linux链表操作方式》:本文主要介绍Linux链表操作方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、链表基础概念与内核链表优势二、内核链表结构与宏解析三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势六、典型应用场景七、调试技巧与

Java Multimap实现类与操作的具体示例

《JavaMultimap实现类与操作的具体示例》Multimap出现在Google的Guava库中,它为Java提供了更加灵活的集合操作,:本文主要介绍JavaMultimap实现类与操作的... 目录一、Multimap 概述Multimap 主要特点:二、Multimap 实现类1. ListMult

Python中文件读取操作漏洞深度解析与防护指南

《Python中文件读取操作漏洞深度解析与防护指南》在Web应用开发中,文件操作是最基础也最危险的功能之一,这篇文章将全面剖析Python环境中常见的文件读取漏洞类型,成因及防护方案,感兴趣的小伙伴可... 目录引言一、静态资源处理中的路径穿越漏洞1.1 典型漏洞场景1.2 os.path.join()的陷

Macos创建python虚拟环境的详细步骤教学

《Macos创建python虚拟环境的详细步骤教学》在macOS上创建Python虚拟环境主要通过Python内置的venv模块实现,也可使用第三方工具如virtualenv,下面小编来和大家简单聊聊... 目录一、使用 python 内置 venv 模块(推荐)二、使用 virtualenv(兼容旧版 P