iOS时间显示今天昨天
一、前言
今天无意间想起写这个功能,仔细考虑了一下,其实很简单,整体思路如下:
先获取你所要转换的时间的年月日,然后再获取今天和昨天的年月日,然后对比,进而返回不同的字符串。
二、实现步骤
首先,我们设置一下时间格式:
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时间显示今天昨天的更多相关文章
- 【safari挖的那些坑】iOS safari 浏览器 时间乱码(ios时间显示NaN) 问题解决
通常 iOS下时间错误表现形式 问题一: 这个界面运用了大量的日期类型的计算,当我们用JavaScript实例化一个日期对象时,我们可以这样用: var date =new Date(); 上面这段代 ...
- IOS safari 浏览器 时间乱码(ios时间显示NaN) 问题解决
问题一: 项目中遇到一个关于日期时间在ios中乱码在安卓中安然无恙的问题,焦躁了半天 问题如上图,通过用户选择的时间和当天的天数相加然后在ios上就是乱码 这个界面运用了日期类型的计算,当我们用Jav ...
- ios时间显示NaN
问题是当时js里时间是这种格式的 2016-09-07 16:37:50 用var time = obj.replace(/\-/g, "/");将格式改成 2016/09/07 ...
- vue中解决时间在ios上显示NAN的问题
最近在用vue,遇到倒计时在ios上显示为NAN的问题. 因为做的是倒计时支付,思路是获取服务器时间和下单时间,再转成秒级时间戳做差值. 在网上找到说是ios 不支持例如2018-09-01 10:0 ...
- iOS 时间的处理
做App避免不了要和时间打交道,关于时间的处理,里面有不少门道,远不是一行API调用,获取当前系统时间这么简单.我们需要了解与时间相关的各种API之间的差别,再因场景而异去设计相应的机制. 时间的形式 ...
- iOS时间问题
在iOS开发中,经常会遇到各种各样的时间问题,8小时时差,时间戳,求时间间隔,农历等等.解决办法网上比比皆是,但大多零零散散,很多资料并没有说明其中问题.这里集中总结一下,以便于以后查阅和供大家参考. ...
- 将时间显示为“刚刚”“n分钟/小时前”等
在很多场合为了显示出信息的及时性,一般会将时间显示成“刚刚”,“5分钟前”,“3小时前”等,而不是直接将时间打印出来.比如微博,SNS类应用就最长用到这个功能.而一般存储在数据库中的时间格式为 Uni ...
- ios 时间解析 差8个小时
啥问题也有:小程序中web开发工具里显示时间正常,ios上显示的查8小时 原因: 使用 NSDate *date = [NSDate date]; 获取的时间是标注的UTC时间,和北京时间相差8小时. ...
- IOS日期转为今天昨天形式
近期项目有类似QQ空间展示动态的UI,模仿了QQ空间的时间显示.在此记录,以备查阅. 这是QQ空间的ui: 时间显示为: 1.今天-->今天 xx:xx(今天 15:39) 2.昨天--> ...
随机推荐
- Feign自定义编程配置
介绍 在Spring Cloud中,Feign的默认配置类是FeignClientsConfiguration,该类定义了Feigh默认使用的编码器.解码器.所使用的契约等.Spring Cloud允 ...
- vector、deque、stack、queue、list以及set的使用
注意:以下测试案例都要加上相应的头文件,必要时要加上algorithm文件. 1.vector 连续存储结构,每个元素在内存上是连续的:支持高效的随机访问和在尾端插入/删除操作,但其他位置的插入/删除 ...
- java远程调试(idea)
遇见一个怪异问题,无奈线上数据库有限制,只能远程调试下代码.突然发现,远程调试代码真的好简单,简单记录下操作步骤. 1.在idea里创建一个Remote,远程连接的入口. 找到 Edit Config ...
- sql cast,convert,QUOTENAME,exec 函数学习记录
语法 使用 CAST: CAST ( expression AS data_type ) 使用 CONVERT: CONVERT (data_type[(length)], expression [, ...
- Python机器学习笔记:深入理解Keras中序贯模型和函数模型
先从sklearn说起吧,如果学习了sklearn的话,那么学习Keras相对来说比较容易.为什么这样说呢? 我们首先比较一下sklearn的机器学习大致使用流程和Keras的大致使用流程: skl ...
- Linux 服务器命令,持续更新……
记录一下常用命令给自己备忘备查,会持续更新-- 一.查看和修改Linux的时间 1. 查看时间和日期,命令: date 2.设定时间和日期 例如:将系统日期修改成2020年2月14日12点的命令: d ...
- jQuery学习(1)猜数字游戏
jQuery是一个快捷.小型且特征丰富的JavaScript库.它使得HTML文档遍历及操作,事件处理,动画,Ajax等更简洁方便.它通过调用一个简单易用的API,就能在各种浏览器中使用.由于jQ ...
- layUI Tree 的使用
原文作者:小巷而已 [[layui-xtree 3.0]依赖layui form模块 复选框tree插件] 原文链接: https://blog.csdn.net/xianglikai1/articl ...
- IdentityServer4-Resource定义-翻译
资源定义(Defining Resource) 通常,第一件事是定义那些你想保护的资源.这些资源可能是你的用户信息,比如个人数据,电子邮件或者对Api的访问. Note: 你可以用C#实体类来定义资源 ...
- 【Java深入研究】4、fail-fast机制
在JDK的Collection中我们时常会看到类似于这样的话: 例如,ArrayList: 注意,迭代器的快速失败行为无法得到保证,因为一般来说,不可能对是否出现不同步并发修改做出任何硬性保证.快速失 ...