如何让Qt将QVariant视为UTC时间戳?

时间:2015-09-17 15:44:29

标签: qt sqlite time

我的SQLite数据库中有UTC时间戳。当我尝试使用SELECT QSqlQuery和QSqlQuery :: value()获取其中一个时,它返回一个QVariant。如果我执行QVariant :: toDateTime(),Qt会将时间戳视为本地时间而不是UTC。如何摆脱不正当的调整?

1 个答案:

答案 0 :(得分:1)

要将时区重置为UTC,您可以使用QDateTime::setOffsetFromUtc设置零偏移。 它将更改 CREATE TABLE #temp(st_date DATE,end_date DATE,usr_id INT) INSERT #temp VALUES ('2007-03-01 ','2015-01-31 ',1), ('2015-02-01 ','2017-04-01 ',1), ('2007-03-01 ','2014-01-31 ',2), ('2007-03-01 ','2015-01-31 ',3), ('2015-03-02 ','2017-04-01 ',3) DECLARE @st_dt DATE = '2009-02-01 00:00:00',@end_dt DATE = '2017-01-01 00:00:00' SELECT * FROM #temp WHERE @st_dt BETWEEN st_date AND end_date AND @end_dt BETWEEN st_date AND end_date DROP TABLE #temp 个对象。因此,与将{date}转换为UTC的QDateTime相比,它将引用不同的时间点。

QDateTime::toUTC()