Bau*_*aub 40 objective-c nstimeinterval ios
我想把NSTimeInterval它格式化为字符串00:00:00(小时,分钟,秒).做这个的最好方式是什么?
Joh*_*ool 106
从iOS 8.0开始,现在NSDateComponentsFormatter有一种stringFromTimeInterval:方法.
[[NSDateComponentsFormatter new] stringFromTimeInterval:timeInterval];
Run Code Online (Sandbox Code Playgroud)
rob*_*off 60
"最好"是主观的.最简单的方法是:
unsigned int seconds = (unsigned int)round(myTimeInterval);
NSString *string = [NSString stringWithFormat:@"%02u:%02u:%02u",
seconds / 3600, (seconds / 60) % 60, seconds % 60];
Run Code Online (Sandbox Code Playgroud)
从iOS 8.0和Mac OS X 10.10(Yosemite)开始,NSDateComponentsFormatter如果需要符合语言环境的解决方案,则可以使用.例:
NSTimeInterval interval = 1234.56;
NSDateComponentsFormatter *formatter = [[NSDateComponentsFormatter alloc] init];
formatter.allowedUnits = NSCalendarUnitHour | NSCalendarUnitMinute |
NSCalendarUnitSecond;
formatter.zeroFormattingBehavior = NSDateComponentsFormatterZeroFormattingBehaviorPad;
NSString *string = [formatter stringFromTimeInterval:interval];
NSLog(@"%@", string);
// output: 0:20:34
Run Code Online (Sandbox Code Playgroud)
但是,我没有看到强制它输出两个小时的方法,所以如果这对你很重要,你需要使用不同的解决方案.
Mic*_*ick 27
NSTimeInterval interval = ...;
NSDate *date = [NSDate dateWithTimeIntervalSince1970:interval];
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:@"HH:mm:ss"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
NSString *formattedDate = [dateFormatter stringFromDate:date];
NSLog(@"hh:mm:ss %@", formattedDate);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20723 次 |
| 最近记录: |