objective-c - 将秒格式化为 hh :ii:ss

标签 objective-c nsdateformatter

我有一个基本计时器应用程序。它跟踪应用程序运行的秒数。我想转换它以便秒数 (NSUInteger) 显示为:00:00:12 (hh:mm:ss)。所以我读了这篇文章:

NSNumber of seconds to Hours, minutes, seconds

我从中编写了这段代码:

NSDate *date = [NSDate dateWithTimeIntervalSince1970:[[self meeting] elapsedSeconds]];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"hh:mm:ss"];

它工作正常,但它从 04:00:00 开始。我不确定为什么。我也试过做类似的事情:

NSDate *date = [NSDate dateWithTimeIntervalSinceNow:[[self meeting] elapsedSeconds] * -1];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"hh:mm:ss"];

本以为它会正确显示计数器,但它在 01:23:00 出现了奇怪的结果,然后突然跳到 04:00:00 并在剩下的时间里一直停留在那里。

女士

最佳答案

这类似于 previous answer关于格式化时间,但不需要日期格式化程序,因为我们不再处理日期。

如果您将秒数存储为整数,则可以自己计算出各个时间分量:

NSUInteger h = elapsedSeconds / 3600;
NSUInteger m = (elapsedSeconds / 60) % 60;
NSUInteger s = elapsedSeconds % 60;

NSString *formattedTime = [NSString stringWithFormat:@"%u:%02u:%02u", h, m, s];

关于objective-c - 将秒格式化为 hh :ii:ss,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4046991/

相关文章:

iOS 在字符串中查找字符串

objective-c - cocoa NSTextField 行间距

ios - MPMoviePlayerController 显示黑屏

objective-c - NSWorkspace共享工作空间运行应用程序导致内存泄漏;另一种选择?

Swift "date from string"转换不起作用但格式适用于在线服务?

ios - 解析来自 Fitbit API 的日期字符串

iphone - UIScrollView 上的蒙版叠加

iphone - NSDateFormatter 字符串

ios - NSDateFormatter 结果与 apple.cn 截图不同

ios - 将 EST 转换为 GMT 显示错误的时间