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:-(24*60*60)];
    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:-(24*60*60)];
    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开发 Swift
iOS - Swift NSDate 时间
前言 NSDate public class NSDate : NSObject, NSCopying, NSSecureCoding NSDate 用来表示公历的 GMT 时间(格林威治时间)。
1508 0
|
iOS开发
iOS 关于时间的处理
iOS关于时间的处理(一)—— 有关时间的基本知识iOS关于时间的处理(二)—— 客户端和服务器的时间同步问题解决
717 0
|
数据库 iOS开发
iOS 开发之获取时间到年底可能会踩到的坑
昨天中午微信突然炸了!打开一看所有区的微信群都在反应程序里的时间不对,影响他们营业。随后我安装程序看了一下,程序里的时间现实的是 2018 年 12 月 31 日 跟群里描述的一样。
970 0
|
iOS开发
iOS - OC NSDate 时间
前言 NSDate @interface NSDate : NSObject NSDate 用来表示公历的 GMT 时间(格林威治时间)。是独立与任何历法的,它只是时间相对于某个时间点的时间差;NSDate 是进行日历计算的基础。
1039 0
|
iOS开发
IOS时间和秒的转换
http://blog.csdn.net/ouy_huan/article/details/7553818
647 0