首页 > 解决方案 > 将 hh:mm:ss.zzz 时间 QString 转换为毫秒的单行函数?

问题描述

我正在使用 Qt 并且我有一个时间QString格式hh:mm:ss:zzz,例如01:59:25.345. 我想知道 Qt 或 c++ 中是否已经有一些方便的函数可以轻松地将其转换为毫秒。至于QTime::fromMSecsSinceStartOfDay(12334).toString("hh:mm:ss.zzz");反过来。

标签: c++qtmillisecondstime-format

解决方案


认为您的格式Qt::ISODateWithMs被认为是有效的 ISO 8601。只需T在日期 a 和时间之间添加一个带有分隔符的任意日期即可。

QString timestamp = "2020-01-01T01:59:25.345";
int milliseconds = QDateTime::fromString(timestamp, Qt::ISODateWithMs).time().msecsSinceStartOfDay();

此外,如果当天是夏令时开始/结束日,我不确定这会如何影响计算,这甚至很重要。


推荐阅读