iOS時(shí)間戳獲取以及時(shí)間戳到時(shí)間格式的轉(zhuǎn)換(仿微信對(duì)時(shí)間的處理)

時(shí)間戳:時(shí)間戳是指格林威治時(shí)間1970年01月01日00時(shí)00分00秒(北京時(shí)間1970年01月01日08時(shí)00分00秒)起至現(xiàn)在的總秒數(shù)

本文對(duì)時(shí)間戳的處理主要仿照微信聊天對(duì)時(shí)間的顯示,根據(jù)時(shí)間戳判斷出今天,昨天,前天,以及以往的時(shí)間.

1. iOS 獲取當(dāng)前時(shí)間戳的方法:

NSTimeInterval  timeNow=[[NSDate date] timeIntervalSince1970];

2.由時(shí)間戳轉(zhuǎn)換到標(biāo)準(zhǔn)時(shí)間格式的工具類

#import <UIKit/UIKit.h>

@interface TimeStampToString : NSObject

///由時(shí)間戳轉(zhuǎn)為時(shí)間格式
+(NSString *)timeStampToString:(CGFloat)timeStamp;

@end
#import "TimeStampToString.h"

@implementation TimeStampToString


+(NSString *)timeStampToString:(CGFloat)timeStamp {

    NSString *timeString = [[NSString alloc]init];
    
    //當(dāng)前時(shí)間的時(shí)間戳
    NSTimeInterval  timeNow=[[NSDate date] timeIntervalSince1970];
    
    //將傳來的時(shí)間戳轉(zhuǎn)為標(biāo)準(zhǔn)時(shí)間格式
    NSTimeInterval time = timeStamp;
    NSDate *date = [NSDate dateWithTimeIntervalSince1970:time];
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSString *tempStr= [dateFormatter stringFromDate:date];

    timeString = [NSString stringWithFormat:@"%@年%@月%@日 %@",[tempStr substringWithRange:NSMakeRange(0,4)],[tempStr substringWithRange:NSMakeRange(5,2)],[tempStr substringWithRange:NSMakeRange(8,2)],[tempStr substringWithRange:NSMakeRange(11,8)]];

    //當(dāng)前時(shí)間
    NSDate *nowDate = [NSDate date];
    NSString *nowDateStr= [dateFormatter stringFromDate:nowDate];
    
    //時(shí)間戳判斷邏輯
    if ([[timeString substringWithRange:NSMakeRange(0, 4)] isEqualToString:[nowDateStr substringWithRange:NSMakeRange(0, 4)]]) {
        
        if ([[timeString substringWithRange:NSMakeRange(5,2)] isEqualToString:[nowDateStr substringWithRange:NSMakeRange(5,2)]]) {
            
            float daySubtract = [[nowDateStr substringWithRange:NSMakeRange(8,2)] floatValue] - [[timeString substringWithRange:NSMakeRange(8,2)] floatValue];
            
            if (daySubtract < 3) {
                
                if (daySubtract == 0) {
                    
                    NSString *string = [NSString stringWithFormat:@"今天 %@",[timeString substringWithRange:NSMakeRange(11,6)]];
                    return  string;
                    
                }else if (daySubtract == 1) {
                
                    NSString *string = [NSString stringWithFormat:@"昨天 %@",[timeString substringWithRange:NSMakeRange(11,6)]];
                    return  string;
                }else {
                
                    if ((timeNow - time) > 3600*24*2) {
                        
                        return timeString;
                    }else {
                    
                        NSString *string = [NSString stringWithFormat:@"前天 %@",[timeString substringWithRange:NSMakeRange(11,6)]];
                        return  string;
                    }

                }
                           
            }else{
            
               return timeString; 
            }
            
        }else {
        return timeString;
            
        }
        
    }else {
    
        return timeString;
    }
   
}
@end
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 國(guó)家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報(bào)批稿:20170802 前言: 排版 ...
    庭說閱讀 12,333評(píng)論 6 13
  • C# DateTime與時(shí)間戳的相互轉(zhuǎn)換,包括JavaScript時(shí)間戳和Unix的時(shí)間戳。 1. 什么是時(shí)間戳 ...
    采姑娘的大白菜閱讀 6,857評(píng)論 0 3
  • 時(shí)間戳(timestamp),通常是一個(gè)字符序列,唯一地標(biāo)識(shí)某一刻的時(shí)間。數(shù)字時(shí)間戳技術(shù)是數(shù)字簽名技術(shù)一種變種的應(yīng)...
    faith3729閱讀 7,079評(píng)論 1 2
  • 北京今天刮了一整天的大風(fēng)。 祥祥跟朋友打了一下午的絕地逃生。 我在電腦前碼了一下午代碼。 看著朋友圈的狀態(tài)更新,想...
    曬太陽(yáng)的小哇閱讀 285評(píng)論 0 0

友情鏈接更多精彩內(nèi)容