日期处理一之NSLalendar的使用

一、日期和时间模式

 日期和时间格式由日期和时间模式字符串组成,在日期和时间模式字符串中未加引号的'A'到‘Z’和'a'到‘z’被解释为模式字母,用来表示日期或时间。字符串元素,文本可以使用单引号(‘’)引起来使用。定义以下模式字母(所有其他字符‘A’到‘Z’,'a'到‘z’都被保留)    

二、日期格式化

  1、  yyyy-MM-dd HH:mm:ss     2014-12-12 12:12:122、  yyyy/MM/dd HH:mm:ss     2014/12/12 12:12:12

三、思维导图

四、事例代码

xzr_formatter  是自定义的静态formatter类
//是今年
- (BOOL)xzr_isToYear{NSCalendar *calendar = [NSCalendar xzr_calendar];NSCalendarUnit unit = NSCalendarUnitYear;NSDateComponents *selfComponents = [calendar components:unit fromDate:计算的日期];NSDateComponents *nowComponents = [calendar components:unit fromDate:[NSDate date]];//年都一样return (selfComponents.year == nowComponents.year);
}
//是今天
- (BOOL)xzr_isToday{NSCalendar *calendar = [NSCalendar xzr_calendar];  // 自定义方法获取日历类对象NSCalendarUnit unit = NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay; //计算的日期,如年,月,日NSDateComponents *selfComponents = [calendar components:unit fromDate:计算的日期]; NSDateComponents *nowComponents = [calendar components:unit fromDate:[NSDate date]];//现在日期return (selfComponents.year == nowComponents.year && selfComponents.month == nowComponents.month && selfComponents.day == nowComponents.day);
}
//判断日期处理
+ (NSString *)xzr_dateString:(NSString *)string{//日期格式xzr_formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";NSDate *createDate = [xzr_formatter dateFromString:string] ;if (createDate.xzr_isToYear) {//是今年if (createDate.xzr_isToday) {//今天NSDate *nowDate = [NSDate date];NSCalendarUnit unit = NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay|NSCalendarUnitHour|NSCalendarUnitMinute|NSCalendarUnitSecond;NSDateComponents *components = [xzr_calendar components:unit fromDate:createDate toDate:nowDate options:NSCalendarWrapComponents ];if (components.hour >= 1) {//几小时前return [NSString stringWithFormat:@"%ld小时前",components.hour];}else if (components.minute >=1){//几分钟前return [NSString stringWithFormat:@"%ld分钟前",components.minute];}else{//刚刚return @"刚刚";}}else if (createDate.xzr_isToYestoday){//昨天xzr_formatter.dateFormat = @"昨天 HH:mm:ss";return [xzr_formatter stringFromDate:createDate];}else{xzr_formatter.dateFormat = @"MM-dd HH:mm:ss";return [xzr_formatter stringFromDate:createDate];}}else{ return string;}
}

 

转载于:https://www.cnblogs.com/TheYouth/p/6607215.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/372595.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java的使用Pair要导入什么包,第三方jar包的使用

被导入的外部类所在源文件通常要打包成jar包,java中的jar文件装的是 .class 文件。它是一种压缩格式和zip兼容,被称为jar包。JDK提供的许多类,也是以jar包的形式提供的。在用的时候呢,你的文件里有很多个类,把这些类和…

十大最受欢迎的新Eclipse插件

Eclipse Marketplace仍然是发现有趣且相关的Eclipse插件的地方。 通过Eclipse Marketplace客户端,每月成功安装100,000多个基于Eclipse的产品。 我们提供了过去30天 以来所有时间最受欢迎的插件列表。 我认为看看过去12个月中最受欢迎的新插件会很有趣。 以下列出了…

在桌面显示我电脑

打开Windows PowerShell(一个像是命令提示符的东西[蓝底白字],但不是命令提示符),在Windows PowerShell内输入cmd回车,当返回如下信息: Microsoft Windows [版本 6.2.9200](c) 2012 Microsoft Corporation。…

《Java技术》第二次作业计科1501赵健宇

(一)学习总结 1.使用Eclipse关联jdk源代码,查看String类的equals()方法 equals()方法截图 “”比较的是地址。equals方法他同样使用号进行内存地址的比较。但是equals方法重写如果号比较不相等,…

注射php,UPDATE注射(mysqlphp)的两个模式

一.测试环境:OS:Windowsxpsp2php:php4.3.10(mysql4.1.9apache1.3.33二.测试数据库结构:-----start-----数据库:test----------------------------------------------------------------表的结构userinfo--CREATETABLEuserinfo(groudidvarchar(12)NOTNULL…

JUnit的内置Hamcrest Core Matcher支持

在用JUnit和Hamcrest改进assertEquals的文章中,我简要讨论了Hamcrest “ 核心 ”匹配器与JUnit的现代版本“结合”在一起的情况。 在那篇文章中,我特别关注了JUnit的assertThat(T,Matcher)静态方法与Hamcrest核心is()匹…

FormsAuthentication使用指南,实现登录

一般情况下,在我们做访问权限管理的时候,会把用户的正确登录后的基本信息保存在Session中,以后用户每次请求页面或接口数据的时候,拿到Session中存储的用户基本信息,查看比较他有没有登录和能否访问当前页面。Session的…

Java开发高性能网站需要关注的事

转自:http://www.javabloger.com/java-development-concern-those-things/ 近期各家IT媒体举办的业内技术大会让很多网站都在披露自己的技术内幕与同行们分享,大到facebook,百度,小到刚起步的网站。facebook,百度之类的…

mysql到oracle数据迁移,mysql数据迁移到oracle

mysql: utf-8字符集oracle: Al32UTF8步骤:1. 从mysql导出csv格式数据,导出时设置default_character_setgbk,否则会乱码2.上传至linux服务器(oracle服务器),用以下命令将windows的/r/n换成/r:sed -i "s//r//g" file3.将gbk编码转为u…

测试抽象类和模板方法模式

摘自Wikipedia,“模板方法定义了算法的程序框架。 子类可以覆盖一个或多个算法步骤,以允许不同的行为,同时确保仍然遵循总体算法。” 通常,此模式由两个或多个类组成,一个是提供模板方法(非抽象&#xff09…

LoadRunner性能测试结果计数器指标说明

LoadRunner性能测试结果计数器指标说明 转载2015-09-23 09:57:13标签:loadrunner计数器针对性能测试结果分析过程中,面对大量的测试数据,反而感觉无从下手分析。今天我们就Windows操作系统计数器中的个别被监控对象进行简单的说明。 Memory: …

Elasticsearch之需要注意的问题(es和jdk版本)

(1)在使用java代码操作es集群的时候 要保证本地使用的es的版本和集群上es的版本保持一致。 (2)保证集群中每个节点的JDK版本和es基本配置一致 这个很简单,不多说。 (3)es集群中jdk版本不一致 …

oracle视图查询数据慢,8i查询DBA_FREE_SPACE视图极慢的问题

还是那套古老的8.1.7.4,在该系统上检查表空间使用情况的SQL运行缓慢,其SQL如下:SELECT D.TABLESPACE_NAME,SPACE "SUM_SPACE(M)",SPACE - NVL(FREE_SPACE, 0) "USED_SPACE(M)",ROUND((1 - NVL(FREE_SPACE, 0) / SPACE) * 100, 2) &q…

bzoj 4332:JSOI2012 分零食

描述 这里是欢乐的进香河,这里是欢乐的幼儿园。 今天是2月14日,星期二。在这个特殊的日子里,老师带着同学们欢乐地跳着,笑着。校长从幼儿园旁边的小吃店买了大量的零食决定分给同学们。听到这个消息,所有同学都安安静静…

并发–顺序线程和原始线程

我不久前参与了一个项目,该项目的报告流程如下: 用户会要求举报 报告要求将被翻译成较小的部分 每个零件的报告将基于零件/节的类型由报告生成器生成 组成报告的各个部分将重新组合成最终报告,并返回给用户 我的目标是展示如何从错误的实…

借贷期末余额 oracle,应交税费期末余额分别在借贷方表示什么

应交税费是负债类科目,有时期末余额会在借方,有时会在贷方。因此,小伙伴们在实际的账务处理工作中,一定要弄清楚两者的含义。为了帮助大家进行有更进一步的理解,小编再次汇总了应交税费期末余额分别在借贷方表示什么的…

Android学习——ListView的缓存机制

在使用ListView的时候,需要加载适配器和数据源,这篇文章主要介绍一下ListView的使用以及利用ListView的缓存机制来减少系统的初始化时间。 ListView的使用 ListView和ViewPager很类似,首先在ArrayList中存放数据源,并把它作为Adap…

C#基础 特殊集合(栈集合、队列集合、哈希表集合)

一、 栈: Stank,先进先出,一个一个赋值,一个一个取值,按照顺序。 .count 取集合内元素的个数 .push 将元素一个一个推入集合 .pop 将元素一个一个弹出集合 .peek 查看集合中的一个元素 .clear 清空集合 Stack stnew Stack…

OSGi环境中的Servlet基本身份验证

您首先需要获得对OSGI HTTP Service的引用。 您可以通过声明性服务来做到这一点。 这篇文章将集中在获得对HTTP服务的引用之后的步骤。 注意:此职位的完整课程位于此处 通过OSGI HTTP Service注册Servlet时,它为您提供了提供HTTPContext实现的选项。 htt…

linux夏令时配置文件,Linux夏令时是怎么调整的?

以法国巴黎为例:root121 zoneinfo]# ln -s /usr/share/zoneinfo/Europe/Paris /etc/localtime[root121 zoneinfo]# date2015年 10月 13日 星期二 03:45:09 CEST[root121 zoneinfo]# date -RTue, 13 Oct 2015 03:45:31 0200[root121 zoneinfo]# zdump -v /etc/localt…