一、前言

  今天无意间想起写这个功能,仔细考虑了一下,其实很简单,整体思路如下:

  先获取你所要转换的时间的年月日,然后再获取今天和昨天的年月日,然后对比,进而返回不同的字符串。

二、实现步骤

  首先,我们设置一下时间格式:

  NSDateFormatter *format = [[NSDateFormatter alloc] init];
[format setDateFormat:@"YYYY年MM月dd日"];
   NSDateFormatter *fo = [[NSDateFormatter alloc] init];
[fo setDateFormat:@"HH:mm"];

  然后我们要获得传过来的时间的年月日和时分:

 //获取传过来的时间的时分
NSString *hoursandSec = [fo stringFromDate:date]; //获取传过来的时间的date
NSString *createDate = [format stringFromDate:date];

  然后获取今天和昨天的年月日:

//获取今天
NSDate *nowDate = [NSDate date];
NSString *today = [format stringFromDate:nowDate]; //获取昨天
NSDate *yesterdayDate = [NSDate dateWithTimeIntervalSinceNow:-(**)];
NSString *yesterday = [format stringFromDate:yesterdayDate];

  然后对比返回数据即可:

 if ([createDate isEqualToString:today]) {
return [NSString stringWithFormat:@"今天%@",hoursandSec];
}else if ([createDate isEqualToString:yesterday])
{
return [NSString stringWithFormat:@"昨天%@",hoursandSec];
}else
{
return [NSString stringWithFormat:@"%@ %@",createDate,hoursandSec];
}

  完成。

三、附加方法源码

/获取时间:今天昨天
+(NSString *)getYMD:(NSDate *)date
{
NSDateFormatter *format = [[NSDateFormatter alloc] init];
[format setDateFormat:@"YYYY年MM月dd日"]; //获取传过来的时间的时分
NSDateFormatter *fo = [[NSDateFormatter alloc] init];
[fo setDateFormat:@"HH:mm"];
NSString *hoursandSec = [fo stringFromDate:date]; //获取传过来的时间的date
NSString *createDate = [format stringFromDate:date]; //获取今天
NSDate *nowDate = [NSDate date];
NSString *today = [format stringFromDate:nowDate]; //获取昨天
NSDate *yesterdayDate = [NSDate dateWithTimeIntervalSinceNow:-(**)];
NSString *yesterday = [format stringFromDate:yesterdayDate]; if ([createDate isEqualToString:today]) {
return [NSString stringWithFormat:@"今天%@",hoursandSec];
}else if ([createDate isEqualToString:yesterday])
{
return [NSString stringWithFormat:@"昨天%@",hoursandSec];
}else
{
return [NSString stringWithFormat:@"%@ %@",createDate,hoursandSec];
}
}

iOS时间显示今天昨天的更多相关文章

  1. 【safari挖的那些坑】iOS safari 浏览器 时间乱码(ios时间显示NaN) 问题解决

    通常 iOS下时间错误表现形式 问题一: 这个界面运用了大量的日期类型的计算,当我们用JavaScript实例化一个日期对象时,我们可以这样用: var date =new Date(); 上面这段代 ...

  2. IOS safari 浏览器 时间乱码(ios时间显示NaN) 问题解决

    问题一: 项目中遇到一个关于日期时间在ios中乱码在安卓中安然无恙的问题,焦躁了半天 问题如上图,通过用户选择的时间和当天的天数相加然后在ios上就是乱码 这个界面运用了日期类型的计算,当我们用Jav ...

  3. ios时间显示NaN

    问题是当时js里时间是这种格式的 2016-09-07 16:37:50 用var time = obj.replace(/\-/g, "/");将格式改成 2016/09/07 ...

  4. vue中解决时间在ios上显示NAN的问题

    最近在用vue,遇到倒计时在ios上显示为NAN的问题. 因为做的是倒计时支付,思路是获取服务器时间和下单时间,再转成秒级时间戳做差值. 在网上找到说是ios 不支持例如2018-09-01 10:0 ...

  5. iOS 时间的处理

    做App避免不了要和时间打交道,关于时间的处理,里面有不少门道,远不是一行API调用,获取当前系统时间这么简单.我们需要了解与时间相关的各种API之间的差别,再因场景而异去设计相应的机制. 时间的形式 ...

  6. iOS时间问题

    在iOS开发中,经常会遇到各种各样的时间问题,8小时时差,时间戳,求时间间隔,农历等等.解决办法网上比比皆是,但大多零零散散,很多资料并没有说明其中问题.这里集中总结一下,以便于以后查阅和供大家参考. ...

  7. 将时间显示为“刚刚”“n分钟/小时前”等

    在很多场合为了显示出信息的及时性,一般会将时间显示成“刚刚”,“5分钟前”,“3小时前”等,而不是直接将时间打印出来.比如微博,SNS类应用就最长用到这个功能.而一般存储在数据库中的时间格式为 Uni ...

  8. ios 时间解析 差8个小时

    啥问题也有:小程序中web开发工具里显示时间正常,ios上显示的查8小时 原因: 使用 NSDate *date = [NSDate date]; 获取的时间是标注的UTC时间,和北京时间相差8小时. ...

  9. IOS日期转为今天昨天形式

    近期项目有类似QQ空间展示动态的UI,模仿了QQ空间的时间显示.在此记录,以备查阅. 这是QQ空间的ui: 时间显示为: 1.今天-->今天 xx:xx(今天 15:39) 2.昨天--> ...

随机推荐

  1. 网站性能压力测试工具--apache ab使用详解

    ab是apache自带的压力测试工具.ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对其它类型的服务器进行压力测试.比如nginx.tomcat.IIS等. 下面我们开始介绍 ...

  2. 内核开发知识第二讲,编写Kerner 程序中注意的问题.

    一丶函数多线程的安全问题 什么是函数多线程安全. 简单来说就是 ,一个函数在调用过程中.还没有返回的时候.再次被其他线程调用了.但是函数执行的结果是可靠的.就可以了说这个函数是安全的. 比如我们在用户 ...

  3. docker使用技巧小记

    1.在使用docker的时候有很多人习惯使用官方镜像.有的人喜欢自己制作镜像,有的时候都是使用默认的配置启动的服务,或者自己在制作镜像的时候直接将配置文件打包到镜像里面了.有的时候会碰到要修改配置文件 ...

  4. window7环境下ZooKeeper的安装运行及监控查看

    原文:http://www.cnblogs.com/RainAndWind/p/4668427.html ZooKeeper是一个分布式开源框架,供了协调分布式应用的基本服务.这些天在使用DUBBO, ...

  5. CSS兼容性(IE和Firefox)技巧

    CSS对浏览器的兼容性有时让人很头疼,或许当你了解当中的技巧跟原理,就会觉得也不是难事,从网上收集了IE7,6与Fireofx的兼容性处理技巧并整理了一下.对于web2.0的过度,请尽量用xhtml格 ...

  6. Hyperledger Fabric密码模块系列之BCCSP(一)

    Fabric作为IBM主导的区块链平台,可谓是联盟链中的一枝独秀,现如今已经有100多个大型国际银行.金融以及科技公司的加盟.与其说Fabric是区块链的一种平台,倒不如说是一个区块链框架更加精确,因 ...

  7. centos6.5修改yum安装的mysql默认目录

    0.说明 Linux下更改yum默认安装的mysql路径datadir. linux下,MySQL默认的数据文档存储目录为/var/lib/mysql. 假如要把MySQL目录移到/home/data ...

  8. SQL查询语句如何能够让指定的记录排在最后

    方法如下:select * from <表名> order by case when <条件> then 1 else 0 end asc 举例:把threads表中列id值小 ...

  9. Swagger2限定接口范围

    前面在使用Swagger2时遇到的坑中简单介绍了Swagger的使用. 不过默认情况下,Swagger2会把项目中的所有接口都展示在列表里,特别是你用了Springboot/SpringCloud之后 ...

  10. Mybatis关联查询之一对多和多对一XML配置详解

    平时在开发过程中dao.bean和XML文件都是自动生成的,很少写XML的配置关系,今天记录一下mybatis的关联查询中的多对一和一对多的情况. 首先是有两张表(学生表Student和老师Teach ...