如何使用 HH:MM:SS:MS swift 存储时间间隔

How to store a time interval with HH:MM:SS:MS swift

事实证明这比我预期的要复杂得多。我有四个允许用户输入 HH:MM:SS:MS 的文本字段,我需要将它们混合在一起以创建一个我可以保存在 fireStore 中的数字。

然后我需要取出这个数字并将其再次转换回 HH:MM:SS:MS 以用于表格图表等。

我最初确实考虑过使用字符串,但这对我稍后想做的 graphs/ordering 没有帮助。进行了大量搜索,但未能找到包含毫秒的可行解决方案。

感谢任何帮助!

下面的一些代码如果有帮助的话,我现在所拥有的就是将它们组合成一个字符串...

let goalHHText = UITextField()
let goalMMText = UITextField()
let goalSSText = UITextField()
let goalMSText = UITextField()

let goalCombined.append(goalHHText.text! + ":" + goalMMText.text! + ":" + goalSSText.text! + ":" + goalMSText.text!)

然后我将 goalCombined 添加到字典中并推送到 Firestore。抱歉,就我所知,我是 100% 的编码菜鸟。

我看过 dateComponentsFormatter,但它不支持毫秒

let interval = 27005
let formatter = DateComponentsFormatter()
formatter.allowedUnits = [.hour, .minute, .second ]
formatter.unitsStyle = .full
let formattedString = formatter.string(from: TimeInterval(interval))!
print(formattedString)

换算成最小单位时间,这里是毫秒。通过 :-

将整个时间转换为毫秒
index = (((HH*60 + MM)*60 + SS)*60 + MS)*1000;

将 'index' 值作为“数字”类型存储在 firestore 中。还将各个 HH、MM、SS、MS 值分别存储在 firestore 中以便于检索。