iOS 時間轉(zhuǎn)換(類似微博)Demo

//
// NSString+TimeTransform.m
// WithpathNew
//
// Created by 雨逍 on 2017/1/3.
// Copyright ? 2017年 劉干. All rights reserved.
//

import "NSString+TimeTransform.h"

@implementation NSString (TimeTransform)

-(NSString )timeTransform
{
/

0~1分鐘 剛剛
1~59分鐘 XX分鐘前
1~23小時
if 未隔天
XX 小時前
eles
昨天 XX:XX
前天 XX:XX
XX:XX:XX
*/

NSString * infoStr = @"";

NSString * nowStr = getCurentTime;
NSTimeInterval nowTime = [nowStr doubleValue];
NSDate * nowDetaildate = [NSDate dateWithTimeIntervalSince1970:nowTime];
//實(shí)例化一個NSDateFormatter對象
NSDateFormatter * nowYear = [[NSDateFormatter alloc] init];
[nowYear setDateFormat:@"yyyy"];
NSDateFormatter * nowMonth = [[NSDateFormatter alloc] init];
[nowMonth setDateFormat:@"MM"];
NSDateFormatter * nowDay = [[NSDateFormatter alloc] init];
[nowDay setDateFormat:@"dd"];
NSDateFormatter * nowHour = [[NSDateFormatter alloc] init];
[nowHour setDateFormat:@"HH"];
NSDateFormatter * nowMin = [[NSDateFormatter alloc] init];
[nowMin setDateFormat:@"mm"];
NSDateFormatter * nowSec = [[NSDateFormatter alloc] init];
[nowSec setDateFormat:@"ss"];

NSString * nowYearStr = [nowYear stringFromDate: nowDetaildate];
NSString * nowMonthStr = [nowMonth stringFromDate: nowDetaildate];
NSString * nowDayStr = [nowDay stringFromDate: nowDetaildate];

// NSString * nowHourStr = [nowHour stringFromDate: nowDetaildate];
// NSString * nowMinStr = [nowMin stringFromDate: nowDetaildate];
// NSString * nowSecStr = [nowSec stringFromDate: nowDetaildate];

NSTimeInterval inputTime = [self doubleValue];
NSDate * detaildate = [NSDate dateWithTimeIntervalSince1970:inputTime];
//實(shí)例化一個NSDateFormatter對象
NSDateFormatter * year = [[NSDateFormatter alloc] init];
[year setDateFormat:@"yyyy"];
NSDateFormatter * month = [[NSDateFormatter alloc] init];
[month setDateFormat:@"MM"];
NSDateFormatter * day = [[NSDateFormatter alloc] init];
[day setDateFormat:@"dd"];
NSDateFormatter * hour = [[NSDateFormatter alloc] init];
[hour setDateFormat:@"HH"];
NSDateFormatter * min = [[NSDateFormatter alloc] init];
[min setDateFormat:@"mm"];
NSDateFormatter * sec = [[NSDateFormatter alloc] init];
[sec setDateFormat:@"ss"];

NSString * yearStr = [year stringFromDate: detaildate];
NSString * monthStr = [month stringFromDate: detaildate];
NSString * dayStr = [day stringFromDate: detaildate];
NSString * hourStr = [hour stringFromDate: detaildate];
NSString * minStr = [min stringFromDate: detaildate];

// NSString * secStr = [sec stringFromDate: detaildate];

//同一天
if ([yearStr isEqualToString:nowYearStr] && [monthStr isEqualToString:nowMonthStr] && [dayStr isEqualToString:nowDayStr])
{
    if (nowTime - inputTime < 60)
    {
        //剛剛
        infoStr = @"剛剛";
        
    }else if (nowTime - inputTime < 3600)
    {
        infoStr = [NSString stringWithFormat:@"%d分鐘前",([nowStr intValue] - [self intValue])/60];
        
    }else if (nowTime - inputTime < 3600 * 24)
    {
        infoStr = [NSString stringWithFormat:@"%d小時前",([nowStr intValue] - [self intValue])/3600];
    }
    
    return infoStr;
}

//同一月
if ([yearStr isEqualToString:nowYearStr] && [monthStr isEqualToString:nowMonthStr])
{
    if ([nowDayStr integerValue] - [dayStr integerValue] == 1)
    {
        infoStr = [NSString stringWithFormat:@"昨天 %@:%@",hourStr,minStr];
        
    }else if ([nowDayStr integerValue] - [dayStr integerValue] == 2)
    {
        infoStr = [NSString stringWithFormat:@"前天 %@:%@",hourStr,minStr];
        
    }else
    {
        infoStr = [NSString stringWithFormat:@"%@-%@",monthStr,dayStr];
    }
    
    return infoStr;
}

//同年
if ([yearStr isEqualToString:nowYearStr])
{
    infoStr = [NSString stringWithFormat:@"%@-%@",monthStr,dayStr];
    
    return infoStr;
}

infoStr = [NSString stringWithFormat:@"%@-%@-%@",yearStr,monthStr,dayStr];

// NSTimeInterval inTime = [self doubleValue];
// NSDate * detaildate = [NSDate dateWithTimeIntervalSince1970:inTime];
// //實(shí)例化一個NSDateFormatter對象
// NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init];
// [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
// NSString * currentDateStr = [dateFormatter stringFromDate: detaildate];
// NSLog(@"時間: %@",currentDateStr);

return infoStr;

}

@end

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子磷杏,更是在濱河造成了極大的恐慌,老刑警劉巖帜慢,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件计技,死亡現(xiàn)場離奇詭異忠蝗,居然都是意外死亡基茵,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進(jìn)店門手趣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來晌该,“玉大人,你說我怎么就攤上這事绿渣〕海” “怎么了?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵中符,是天一觀的道長姜胖。 經(jīng)常有香客問我,道長淀散,這世上最難降的妖魔是什么右莱? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮档插,結(jié)果婚禮上慢蜓,老公的妹妹穿的比我還像新娘。我一直安慰自己郭膛,他們只是感情好晨抡,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著饲鄙,像睡著了一般凄诞。 火紅的嫁衣襯著肌膚如雪圆雁。 梳的紋絲不亂的頭發(fā)上忍级,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天,我揣著相機(jī)與錄音伪朽,去河邊找鬼轴咱。 笑死,一個胖子當(dāng)著我的面吹牛烈涮,可吹牛的內(nèi)容都是我干的朴肺。 我是一名探鬼主播,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼坚洽,長吁一口氣:“原來是場噩夢啊……” “哼戈稿!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起讶舰,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤鞍盗,失蹤者是張志新(化名)和其女友劉穎需了,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體般甲,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡肋乍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了敷存。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片墓造。...
    茶點(diǎn)故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖锚烦,靈堂內(nèi)的尸體忽然破棺而出觅闽,到底是詐尸還是另有隱情,我是刑警寧澤涮俄,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布谱煤,位于F島的核電站,受9級特大地震影響禽拔,放射性物質(zhì)發(fā)生泄漏刘离。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一睹栖、第九天 我趴在偏房一處隱蔽的房頂上張望硫惕。 院中可真熱鬧,春花似錦野来、人聲如沸恼除。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽豁辉。三九已至,卻和暖如春舀患,著一層夾襖步出監(jiān)牢的瞬間徽级,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工聊浅, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留餐抢,地道東北人。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓低匙,卻偏偏與公主長得像旷痕,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子顽冶,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1.badgeVaule氣泡提示 2.git終端命令方法> pwd查看全部 >cd>ls >之后桌面找到文件夾內(nèi)容...
    i得深刻方得S閱讀 4,667評論 1 9
  • 150. control reaches end of non-void function //缺少返回值 ret...
    i得深刻方得S閱讀 1,144評論 0 0
  • 做App避免不了要和時間打交道欺抗,關(guān)于時間的處理,里面有不少門道强重,遠(yuǎn)不是一行API調(diào)用绞呈,獲取當(dāng)前系統(tǒng)時間這么簡單团滥。我...
    滄海的風(fēng)閱讀 759評論 0 1
  • 在iOS開發(fā)中,經(jīng)常會遇到各種各樣的時間問題报强,8小時時差灸姊,時間戳,求時間間隔秉溉,農(nóng)歷等等力惯。解決辦法網(wǎng)上比比皆是,但大...
    真巧了_嘿閱讀 2,774評論 0 7
  • 隨便發(fā)一篇什么也說不清楚的文章召嘶,我試一下在公眾平臺上發(fā)文章的感覺父晶,順便練習(xí)一下打字能力,哈哈弄跌,很奇妙的感覺甲喝,如果讀...
    為什么不能叫李飛閱讀 128評論 0 0