首先我要解释一下标题的意义,日期的简洁格式展示,之所以简介,是因为让人一目了然,不需要思考是什么时候。

在详细一点就是我们在微信朋友圈中 所看到的时间格式。

例如:刚刚 -几分钟前-几小时前等等。

今天这里带来的是一个简单的类别。

方便实用。

以及简单的实际应用。

先看看一看类别是什么样子的

.h

#import <Foundation/Foundation.h>

@interface NSDate (CXExtension)

-(NSDateComponents *)dateFrom:(NSDate *)from;

-(BOOL)isThisYear;
-(BOOL)isToday;
-(BOOL)isYesterday; @end

.m

#import "NSDate+CXExtension.h"

@implementation NSDate (CXExtension)

-(NSDateComponents *)dateFrom:(NSDate *)from{
//日历
NSCalendar *calendar = [NSCalendar currentCalendar]; NSCalendarUnit unit = NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay|NSCalendarUnitHour|NSCalendarUnitMinute|NSCalendarUnitSecond; return [calendar components:unit fromDate:from toDate:self options: ];
}
//判断是否为今年
-(BOOL)isThisYear{ NSCalendar * calendar = [NSCalendar currentCalendar]; NSInteger nowYear = [calendar component:NSCalendarUnitYear fromDate:[NSDate date]];
NSInteger selfYear = [calendar component:NSCalendarUnitYear fromDate:self]; return selfYear == nowYear; }
//判读是否为今天
-(BOOL)isToday{ NSDateFormatter * formatter = [[NSDateFormatter alloc]init]; formatter.dateFormat = @"yyyy-MM-dd"; NSString * nowDate = [formatter stringFromDate:[NSDate date]];
NSString * selfDate = [formatter stringFromDate:self]; return [nowDate isEqualToString:selfDate]; }
//判断是否为昨天
-(BOOL)isYesterday{ NSDateFormatter * formatter = [[NSDateFormatter alloc]init]; formatter.dateFormat = @"yyyy-MM-dd"; NSDate * nowDate = [formatter dateFromString:[formatter stringFromDate:[NSDate date]]];
NSDate * selfdate = [formatter dateFromString:[formatter stringFromDate:self]]; NSCalendar * calendar = [NSCalendar currentCalendar]; NSDateComponents * unit = [calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:selfdate toDate:nowDate options:];
return unit.year == && unit.month == && unit.day == ; }
@end

下面的实力所展现的效果:

当时间为去年时 显示全部时间格式

当时间为今年时分为以下情况

当时间为今天是判断具体时间

产生几小时前

几分钟前

刚刚的显示格式

当时间为昨天是 显示昨天以及时分秒

当时间既不是今天又不是昨天时

显示除年以外的所有时间格式

-(NSString *)create_time{
NSDateFormatter * formatter = [[NSDateFormatter alloc]init];
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSDate * creat = [formatter dateFromString:_create_time];
if (creat.isThisYear) { if (creat.isToday) { NSDateComponents * unit = [creat dateFrom:creat];
if (unit.hour > ) {
return [NSString stringWithFormat:@"%zd小时前",unit.hour];
}else if (unit.minute > ){
return [NSString stringWithFormat:@"%zd分钟前",unit.minute];
}else{
return @"刚刚";
}
}else if (creat.isYesterday){
formatter.dateFormat = @"昨天 HH:mm:ss";
return[formatter stringFromDate:creat];
}else{
formatter.dateFormat = @"MM-dd HH:mm:ss";
return [formatter stringFromDate:creat];
}
}
else{
return[formatter stringFromDate:creat];
}
}

IOS 日期的简洁格式展示的更多相关文章

  1. IOS 设置ios中DatePicker的日期为中文格式

    设置ios中DatePicker的日期为中文格式 1.在模拟器中的“设置”-“通用”-“多语言环境”-“语言”设置为“简体中文”, 2.“区域格式”设置为“中国”.

  2. Java与IOS日期格式

    //JAVA日期格式 Date date = new Date(); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM- ...

  3. iOS开发之JSON格式数据的生成与解析

    本文将从四个方面对IOS开发中JSON格式数据的生成与解析进行讲解: 一.JSON是什么? 二.我们为什么要用JSON格式的数据? 三.如何生成JSON格式的数据? 四.如何解析JSON格式的数据? ...

  4. style不同取值对应的日期、时间格式

    from : http://www.cnblogs.com/Gavinzhao/archive/2009/11/10/1599690.html sql server2000中使用convert来取得d ...

  5. placeholder的字体样式改变,滚动条的颜色改变,ios日期兼容

    placeholder:::-webkit-input-placeholder { color: rgba(153, 153, 153, 0.541);font-size:12px;}:-moz-pl ...

  6. c# 日期函数DateTime.ToString()日期的各种格式 (本人亲测)

    c# 日期函数DateTime.ToString()日期的各种格式  (本人亲测) 平时写代码的过程难免遇到对日期的格式转换,这个时候很容易忘记具体格式的转换是什么,当然这不是什么复杂的,查一下就能找 ...

  7. 不修改系统日期和时间格式,解决Delphi报错提示 '****-**-**'is not a valid date and time

    假如操作系统的日期格式不是yyyy-MM-dd格式,而是用strtodate('2014-10-01')) 来转换的话,程序会提示爆粗 '****-**-**'is not a valid date ...

  8. java 获取 获取某年某月 所有日期(yyyy-mm-dd格式字符串)

    总结一些日期常用的代码,方便以后直接拿 <code> /** * java 获取 获取某年某月 所有日期(yyyy-mm-dd格式字符串) * @param year * @param m ...

  9. 常用SQL时间格式SQLServer中文版的默认的日期字段datetime格式是yyyy-mm-d

    常用SQL时间格式 SQL Server中文版的默认的日期字段datetime格式是yyyy-mm-dd Thh:mm:ss.mmm 例如: select getdate() -- ::08.177 ...

随机推荐

  1. css规范

    1 前言 CSS 作为网页样式的描述语言,在百度一直有着广泛的应用.本文档的目标是使 CSS 代码风格保持一致,容易被理解和被维护. 虽然本文档是针对 CSS 设计的,但是在使用各种 CSS 的预编译 ...

  2. windows下compsoer的简单操作

    *****************************************[安装]***************************************** 下载地址https://g ...

  3. 云计算之路-阿里云上:从ASP.NET线程角度对“黑色30秒”问题的全新分析

    在这篇博文中,我们抛开对阿里云的怀疑,完全从ASP.NET的角度进行分析,看能不能找到针对问题现象的更合理的解释. “黑色30秒”问题现象的主要特征是:排队的请求(Requests Queued)突增 ...

  4. 深入seajs源码系列二

    模块类和状态类 参照上文的demo,我们结合源码分析在简单的API调用的背后,到底使用了什么技巧来实现各个模块的依赖加载以及模块API的导出. 首先定义了一个Module类,对应与一个模块 funct ...

  5. 1Z0-053 争议题目解析692

    1Z0-053 争议题目解析692 考试科目:1Z0-053 题库版本:V13.02 题库中原题为: 692.Your company wants to upgrade the production ...

  6. svn 几个常用命令(持续更新)

    1:获取某个版本号(3583)下的代码                                               svn co http://tech.yoai.com:8300/c ...

  7. 加入一个线程:join

    在启动一个线程之后调用该线程的join()方法,会使该线程先执行,该线程执行完成后,再执行调用该线程的线程. 例如如下的任务: public class LiftOff extends Thread ...

  8. 前端必须了解的布局常识:普通流(normal flow)

    目录 一.概述 二.块级元素和内联元素 常见的块级元素 BFC 常见的行内元素 IFC 三.哪些情况会脱离普通流 浮动 绝对定位 固定定位 display:none 四.总结 五.参考资料 一.概述 ...

  9. UML类图简单介绍

    先上一张图: 概述 类图(Class Diagram)是面向对象系统建模中最常用和最重要的图,是定义其它图的基础.类图主要是用来显示系统中的类.接口以及它们之间的静态结构和关系的一种静态模型. 类图组 ...

  10. .net登录的一般模式

    思路: 1.检查登录: private string CheckLogin(HttpContext context) { Model.TUser model = (Model.TUser)contex ...