QDateTime时区的ISO日期?

4

我希望你能帮我翻译一下,关于IT技术的内容。需要将Qt中的日期时间以带有时区信息的ISO格式字符串返回。我在网上寻找了很长时间,但没有找到解决方案。

以下是需要翻译的内容:

this->ui.dateEnd->dateTime().toString(Qt::ISODate);

给我这个:
1900-10-31T23:00:00Z

或者也可以这样:
this->ui.dateEnd->dateTime().toUfc().toString(Qt::ISODate);

给我这个:
1900-10-31T23:00:00Z

and i want this:

1900-10-31T23:00:00+01.00.00

谢谢如果有人有想法!

dateTime.toTimeSpec(Qt::OffsetFromUTC).toString(Qt::ISODate) 应该可以工作(根据文档),但是似乎存在一个错误 - user362638
1个回答

5

解决了我在评论中提到的错误:

QDateTime local = QDateTime::currentDateTime();
QDateTime utc = local.toUTC();
utc.setTimeSpec(Qt::LocalTime);

int utcOffset = utc.secsTo(local);

qDebug() << local.toString(Qt::ISODate);
qDebug() << utc.toString(Qt::ISODate);
qDebug() << utcOffset;

local.setUtcOffset(utcOffset);
qDebug() << local.toString(Qt::ISODate);

这会输出:
"2013-09-12T00:17:39"  
"2013-09-11T21:17:39"  
10800 
"2013-09-12T00:17:39+03:00"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接