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.昨天--> ...
随机推荐
- 从零开始学 Web 之 CSS(五)可见性、内容移除、精灵图、属性选择器、滑动门
大家好,这里是「 Daotin的梦呓 」从零开始学 Web 系列教程.此文首发于「 Daotin的梦呓 」公众号,欢迎大家订阅关注.在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识 ...
- MongoDB的aggregate聚合
聚合框架中常用的几个操作: $project:修改输入文档的结构.可以用来重命名.增加或删除域,也可以用于创建计算结果以及嵌套文档.(显示的列,相当遇sql 的) $match:用于过滤数据,只输出符 ...
- lucene简单搜索demo
方法类 package com.wxf.Test; import com.wxf.pojo.Goods; import org.apache.lucene.analysis.standard.Stan ...
- 【awesome-dotnet-core-learning】(2)-Sprache.Calc-表达式计算器
[awesome-dotnet-core-learning](2)-Sprache.Calc-表达式计算器 示例代码托管在GITHUB上, 欢迎STAR! 严格来说, Sprache.Calc只是上一 ...
- #14 Python模块
前言 前面的文章中,有许多地方都用到了Python的模块,这个到底是个什么神奇的东西呢?让我们来一起盘它! 一.什么是模块 在前几节中,我们已经接触了一些模块:math.random.time等,它们 ...
- [转]git操作指南
[GIT上手篇]-1-基本操作(初始化仓库,添加.提交文件) 创建(初始化)一个GIT库 init 命令 说明:用于仓库的初始化 参数:--bare 创建一个纯仓库(不含缓存区和工作目录,服务器一般采 ...
- Java字符串String
Java字符串String 我们知道Java的字符窜是Immutable(不可变)的,一旦创建就不能更改其内容了:平常我们对字符串的操作是最多的,其实对字符串的操作,返回的字符串都是新建的字符串对象, ...
- java Future用法和意义一句话击破
在并发编程时,一般使用runnable,然后扔给线程池完事,这种情况下不需要线程的结果. 所以run的返回值是void类型. 如果是一个多线程协作程序,比如菲波拉切数列,1,1,2,3,5,8...使 ...
- vue组件+axios访问本地json
import axios from 'axios'export default { name: "AjaxText", data: function () { return { m ...
- Apache:详解QSA,PT,L,E参数的作用
[QSA] 当被替换的URI包含有query string的时候,apache的默认行为是,丢弃原有的query string 并直接使用新产生的query string,如果加上了[QSA]选项,那 ...