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

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

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

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

方便实用。

以及简单的实际应用。

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

.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;

     ];
}
//判断是否为今年
-(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:];
     && 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];
            ) {
                return [NSString stringWithFormat:@"%zd小时前",unit.hour];
            }){
                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. iOS开发之JSON格式数据的生成与解析

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

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

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

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

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

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

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

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

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

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

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

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

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

  9. ios日期格式转换

    转自:http://blog.csdn.net/l_ch_g/article/details/8217725 1.如何如何将一个字符串如“ 20110826134106”装化为任意的日期时间格式,下面 ...

随机推荐

  1. Zabbix监控disk performance

    概述 zabbix获取/sys里面的磁盘信息并分析来监控disk performance sysfs是Linux内核中设计较新的一种虚拟的基于内存的文件系统,它的作用与 proc 有些类似(默认挂载在 ...

  2. 关于datagridview里使用combox的总结

    最近写的程序中需要在DataGridView中使用下拉选择的功能,首选方案是列的ColumnType属性 使用EditingControlShowing事件, if (e.Control is Com ...

  3. mysql case then使用

    表的创建CREATE TABLE `lee` (`id` int(10) NOT NULL AUTO_INCREMENT, `name` char(20) DEFAULT NULL, `birthda ...

  4. SSH乱码解决

    解决方案: 使用linux,在用户根目录(/root)下有一个.bash_profile配置文件,该配置只对当前用户有效. 使用ls -a命令可以查看到该文件.使用vi编辑器打开该文件后,在其中加入 ...

  5. android:强制关闭其他应用

    强制关闭其他应用,可以使用ActivityManager,首先需要获取(ActivityManager)getSystemService(Context.ACTIVITY_SERVICE); 然后可以 ...

  6. 数据结构:(平衡树,链表)BZOJ 1588[HNOI2002]营业额统计

    1588: [HNOI2002]营业额统计 Time Limit: 5 Sec  Memory Limit: 162 MBSubmit: 12173  Solved: 4354[Submit][Sta ...

  7. 如何安装chrome扩展?比如json-handle插件如何安装

    chrome插件安装方法: 方式一,在线安装 直接插到json-handle地址,添加即可 https://chrome.google.com/webstore/detail/json-handle/ ...

  8. 排座椅 2008 NOIP 普及组 第二题

    题目描述 上课的时候总会有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情.不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来之后,只有有限的D对同学上课时会交头接耳.同学 ...

  9. node+mongoose+vue

    app.js 入门 let express = require('express'); let app = express(); let allowCrossDomain = function (re ...

  10. go 的数据类型

    bool string int int8 int16 int32(rune) int64 uint uint8(byte) uint16 uint32 uint64 uintptr:无符号整型,用于存 ...