对于 UTC,我不知道你该怎么做,但对于日期和时间,在你拆分字符串以获取日期和时间之后,你可以执行以下操作:
QString time("21:51:16.779");
QString date("2014-08-26");
QDate date = QDate::fromString(date, "yyyy-MM-dd");
QTime time = QTime::fromString(time, "h:m:s.zzz");
实际上,您可以将 fromString 格式化为日期和时间,这样您就不会只得到毫秒。
但是,如果你真的想获得微秒,你应该创建一个继承到 QTime 的类,然后重载该void QTime::fromString(QString, QString);
方法。然后在这种方法中,您将执行类似的操作。
void MyTime::fromString(QString& str, QString format) {
QRegExp rx("([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})\.([0-9]{6})");
rx.indexIn(str);
_year = rx.cap(1);
_month = rx.cap(5);
_day = rx.cap(7);
_hour = rx.cap(9);
_min = rx.cap(11);
_sec = rx.cap(13);
_msec = rx.cap(15);
}
有了这个,你应该得到毫秒和微秒。您应该更改正则表达式,因为它不是一个完美的,但它应该可以工作。对于 UTC,请参阅 QTimeZone。