将分钟转换为 HH:MM:SS - Swift
Posted
技术标签:
【中文标题】将分钟转换为 HH:MM:SS - Swift【英文标题】:Convert Minutes to HH:MM:SS - Swift 【发布时间】:2020-02-14 18:48:26 【问题描述】:我在一个数组中有一些文本字段。 HH:MM:SS。我有两个问题,一个是当其中一个字段留空时,应用程序崩溃,如果为空,我希望它读为“0”。其次,我使用下面将 HH:MM:SS 转换为分钟。我做 0:18:30,下面的十进制数学得出 18.5
现在如何将其转换回 HH:MM:SS? array[0]
是小时,array[1]
是分钟,array[2]
是秒。
stepOne = (Float(array[0])! * 60) + Float(array[1])! + (Float(array[2])! / 60)
【问题讨论】:
你为什么要摆弄所有这些乘法、加法和强制展开?只需使用DateFormatter
。
我认为这会对您有所帮助。看看this
【参考方案1】:
您需要的是计算秒数而不是分钟数。使用 reduce 方法只需将第一个元素乘以 3600,然后在每次迭代后将乘数除以 60。接下来,您可以使用DateComponentsFormatter
向用户显示使用.positional
单位样式生成的秒时间间隔:
let array = [0,18,30]
var n = 3600
let seconds = array.reduce(0)
defer n /= 60
return $0 + $1 * n
let dcf = DateComponentsFormatter()
dcf.allowedUnits = [.hour, .minute, .second]
dcf.unitsStyle = .positional
dcf.zeroFormattingBehavior = .pad
let string = dcf.string(from: TimeInterval(seconds)) // "00:18:30"
【讨论】:
如何将其插入到设置为 HH MM SS 的 TextFields 数组中?谢谢! 抱歉,您能详细说明一下吗? 您可以编辑您的帖子并添加您遇到的问题的实际代码吗? 非常感谢!这帮助解决了大约 85% 的解决方案,我从那里找到了它,以使其以我想要的方式在我的应用程序中工作。欣赏,周末愉快。以上是关于将分钟转换为 HH:MM:SS - Swift的主要内容,如果未能解决你的问题,请参考以下文章
如何在 SQL 中将小时、分钟和秒 (HH:mm:ss) 转换为分钟和秒 (mm:ss)
将格式为“yyyy-MM-dd HH:mm:ss.m”的日期字符串转换为“yyyy-MM-dd HH:mm:ss”时出现问题