iOS:新浪微博/QQ説などの公開時間をフォーマットする
6167 ワード
紹介:いくつかの社交ツールについて、私たちはいくつかの話や気持ちなどを発表することができます.例えば、新浪微博、QQ、微信など、発表に成功した後、上には発表の時間があります.
この時間は具体的なNSDateタイプではなく、フォーマットされた一般的な基準に合致するモードです.例えば、前の月、前の週、前の日、十数分前、さっきなどに発表されました.
以下に2つの具体的なテストDemoを示します.
ヘッダファイル:
テスト1:
出力結果:
テスト2:
出力結果:
この時間は具体的なNSDateタイプではなく、フォーマットされた一般的な基準に合致するモードです.例えば、前の月、前の週、前の日、十数分前、さっきなどに発表されました.
以下に2つの具体的なテストDemoを示します.
ヘッダファイル:
// ViewController.m // //
// Created by mac on 16/1/26. // Copyright © 2016 mac. All rights reserved. //
#import "ViewController.h"
#define knewsTimeFormat @"yyyyMMddHHmmss" //
#define kcreatedDateFormat @"EEE MMM dd HH:mm:ss Z yyyy" //
#define kLocaleIdentifier @"en_US" //
@interface ViewController () @end
@implementation ViewController - (void)viewDidLoad { [super viewDidLoad];
:
//
NSString *str = @"20160126132609"; // 2016/01/26 13:26:09
NSLog(@"%@",[self newsTime:str]); //
NSString *str2 = @"Tue Jan 26 13:50:08 +0800 2016"; NSLog(@"%@",[self formatCreatedDate:str2]);
}
テスト1:
// :
- (NSString *)newsTime:(NSString *)newsTimes { NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; formatter.dateFormat = knewsTimeFormat; formatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:kLocaleIdentifier]; NSDate *date = [formatter dateFromString:newsTimes]; NSDate *now = [NSDate date]; //
NSTimeInterval interval = [now timeIntervalSinceDate:date]; NSString *format; if (interval <= 60) { format = @" "; } else if(interval <= 60*60){ format = [NSString stringWithFormat:@" %.f ", interval/60]; } else if(interval <= 60*60*24){ format = [NSString stringWithFormat:@" %.f ", interval/3600]; } else if (interval <= 60*60*24*7){ format = [NSString stringWithFormat:@" %d ", (int)interval/(60*60*24)]; } else if (interval > 60*60*24*7 & interval <= 60*60*24*30 ){ format = [NSString stringWithFormat:@" %d ", (int)interval/(60*60*24*7)]; }else if(interval > 60*60*24*30 ){ format = [NSString stringWithFormat:@" %d ", (int)interval/(60*60*24*30)]; } formatter.dateFormat = format; return [formatter stringFromDate:date]; }
出力結果:
2016-01-26 14:32:28.324 [1809:109947] 1
テスト2:
// :
-(NSString *)formatCreatedDate:(NSString *)newsTimes { NSDateFormatter *formatter = [[NSDateFormatter alloc]init]; formatter.dateFormat = kcreatedDateFormat; formatter.locale = [[NSLocale alloc]initWithLocaleIdentifier:kLocaleIdentifier]; NSDate *date = [formatter dateFromString:newsTimes]; NSDate *now = [NSDate date]; //
NSTimeInterval timeInterval = [now timeIntervalSinceDate:date]; if(timeInterval < 60) //1
{ return @" "; } else if(timeInterval < 60*60) //1
{ return [NSString stringWithFormat:@"%d ",(int)timeInterval/60]; } else if(timeInterval < 60*60*24) //1
{ return [NSString stringWithFormat:@"%d ",(int)timeInterval/60/60]; } return [NSString stringWithFormat:@"%.1lf",timeInterval]; } @end
出力結果:
2016-01-26 14:32:28.325 [1809:109947] 42