我正在使用Qt来解析包含UTC时间戳的XML文件。当然,在该计划中,我希望他们改为当地时间。在XML文件中,时间戳如下所示:“2009-07-30T00:32:00Z”。
不幸的是,当使用QDateTime :: fromString()方法时,这些时间戳被解释为在本地时区。解决此问题的hacky方法是从此时加上或减去正确的时区偏移量,将其转换为“真正的”本地时间。但是,有没有办法让Qt意识到我正在导入UTC时间戳然后自动将其转换为本地时间?
答案 0 :(得分:7)
这样做:
QDateTime timestamp = QDateTime::fromString(thestring);
timestamp.setTimeSpec(Qt::UTC); // mark the timestamp as UTC (but don't convert it)
timestamp = timestamp.toLocalTime() // convert to local time
答案 1 :(得分:1)
尝试使用setTime_t功能。
答案 2 :(得分:1)
请注意,Qt中尚未提供全时区支持,但可能会在将来的版本中使用。