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

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

本文关键字:函数 单行 QString mm hh ss zzz 时间 转换      更新时间:2023-10-16

我正在使用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();

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