对于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。