如何将数字正常转换为时间格式?
How to convert a number to a time format normally?
我有一个号码,如:
301
我想转换成时间格式:00:05:01
我的想法是让301/3600
得到小时,(301%3600)/60
得到分钟,301%60
得到秒,我可以得到格式字符串,但是如果有是一种简单的方法吗?因为我觉得这可能不正常。
我觉得你的方法是合适的,normal.There没必要像这样加API,因为很简单明了,apple帮不了我们,当然你可以自己打包。
使用 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]);
如果您可以接受 0:05:01
(几个小时前没有前导零),请使用 (NS)DateComponentsFormatter
:
Swift:
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);
我有一个号码,如:
301
我想转换成时间格式:00:05:01
我的想法是让301/3600
得到小时,(301%3600)/60
得到分钟,301%60
得到秒,我可以得到格式字符串,但是如果有是一种简单的方法吗?因为我觉得这可能不正常。
我觉得你的方法是合适的,normal.There没必要像这样加API,因为很简单明了,apple帮不了我们,当然你可以自己打包。
使用 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]);
如果您可以接受 0:05:01
(几个小时前没有前导零),请使用 (NS)DateComponentsFormatter
:
Swift:
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);