在開發中經常會遇到和後台進行互動時時間格式的轉換。
首先列舉幾種常見的NSDate的格式:
1 . 20150605234106格式
2. 2015-06-05 15:41:06 +0000格式(正常的輸出格式)
3. 1433498400格式(以1970年起到現在的秒數)
第一種格式轉換為第二種格式
//第一種時間格式
NSString* string = @"20150605234106";
NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init];
[inputFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]];
//( 設定你想要的格式,hh與HH的區別:分別表示12小時制,24小時制)
[inputFormatter setDateFormat:@"yyyyMMddHHmmss"];
NSDate* inputDate = [inputFormatter dateFromString:string];
//輸出的是第二種格式的日期
NSLog(@"date = %@", inputDate);
第一種格式轉換成第三種格式
//擷取到當前的時間
NSDate * nowDate=[NSDate date];
NSLog(@"nowDate = %@",nowDate);
//輸出的是第三種格式的日期
NSString * dateString=[NSString stringWithFormat:@"%.0f",[nowDate timeIntervalSince1970]];
NSLog(@"datestring = %@",dateString);
第三種格式轉換成可以輸出的String
//第三種格式的日期
NSString * dateString= @"1433487206";
NSDate *updatedDate=[[NSDate alloc] initWithTimeIntervalSince1970:[dateString doubleValue]];
//輸出為可以顯示的String (此處需要一個NSDate+Category來實現)
NSString * result=[updatedDate timeIntervalDescription];
NSLog(@"result = %@",result); timeIntervalDescription為可選方法 可以輸出為不同格式的日期顯示格式
- (NSString *)timeIntervalDescription;//距離當前的時間間隔描述
- (NSString *)minuteDescription;/*精確到分鐘的日期描述*/
- (NSString *)formattedTime;
- (NSString *)formattedDateDescription;//格式化日期描述
不需要NSDate+Category來實現簡單的轉換
long long int date=1433488265;
NSDate * nowDate=[NSDate dateWithTimeIntervalSince1970:date];(沒有幾分鐘前的提示)
提示;所得到的時間都是以0時區計算的。輸出的時候需要轉換時區。