将 hh:mm:ss.zzz 时间 QString 转换为毫秒的单行函数?

A one line function to convert a hh:mm:ss.zzz time QString to milliseconds?

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

认为 您的 Qt::ISODateWithMs 格式被认为是有效的 ISO 8601。只需在日期 a 和时间之间使用 T 定界符添加任意日期。

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

此外,如果当天是夏令时 start/end 天,我不确定这对计算有何影响,甚至很重要。