2017-05-05 68 views
0

我有很多,如:如何將數字轉換爲時間格式?

301 

我想轉換爲時間格式:00:05:01

我的想法是讓301/3600拿到小時,(301%3600)/60拿到分鐘,301%60 GET第二,我可以得到格式字符串,但如果有一個簡單的方法來獲取?因爲我認爲這可能不正常。

+0

@ Lenny32如何使用TimeSpan?我的朋友。 –

+0

[Convert Seconds Integer To HH:MM,iPhone]可能重複(http://stackoverflow.com/questions/1739383/convert-seconds-integer-to-hhmm-iphone) – Rivendell

+0

@MahipalSingh我只是尋找更好的方法。 –

回答

0

如果你能0:05:01(數小時沒有前導零)住用(NS)DateComponentsFormatter

斯威夫特:

let number = 301 
let formatter = DateComponentsFormatter() 
formatter.allowedUnits = [.hour, .minute, .second] 
formatter.zeroFormattingBehavior = .pad 
let result = formatter.string(from: TimeInterval(number)) 
print(result) 

ObjC:

NSInteger number = 301; 
NSDateComponentsFormatter *formatter = [[NSDateComponentsFormatter alloc] init]; 
formatter.allowedUnits = NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond; 
formatter.zeroFormattingBehavior = NSDateComponentsFormatterZeroFormattingBehaviorPad; 
NSString *result = [formatter stringFromTimeInterval:(NSTimeInterval)number]; 
NSLog(@"%@", result); 
0

我認爲你的方法是合適的,正常的。沒有必要像這樣添加API,因爲它足夠簡單明瞭,蘋果公司無法爲我們做任何事情,當然,你可以自己打包。

0

試試這個使用NSDateFormatter

NSDate *lastUpdate = [[NSDate alloc] initWithTimeIntervalSince1970:301]; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]]; 
dateFormatter.dateFormat = @"HH:mm:ss"; 
NSLog(@"date time: %@", [dateFormatter stringFromDate:lastUpdate]); 
相關問題