Предпочитаемый способ обработки UTC / местного времени в QtateTime Qt? - PullRequest
3 голосов
/ 28 июля 2010

У меня есть некоторый код, где я записываю QDateTime в файл ...

someQDateTime.toUTC().toString(Qt::ISODate)

, и когда я читаю его обратно, используя QDateTime::fromString(), я получаю время, интерпретируемое как находящееся в часовом поясе системы.,Я могу вручную добавить "Z" к строке, когда я записываю ее, или использовать setTimeSpec() после того, как я ее прочитал, и тогда все в порядке, но разве это предпочтительный способ сделать это?Разве toString () не должен знать, чтобы записать Z, когда timeSpec - UTC?

Ответы [ 2 ]

3 голосов
/ 28 июля 2010

Ну, по крайней мере, согласно ISO 8601 (раздел 4.2.4, pdf здесь ), требуется Z, чтобы различать UTC и местное время. Кажется, что QDateTime::toString() не следует этому совету, в то время как QDateTime::fromString() знает об этом. ISO 8601 также содержит это примечание в разделе 4.3.2 (где [T] - индикатор часового пояса, т.е. Z):

"По взаимному согласию партнеров по обмену информацией символ [T] может быть опущен в приложения, где нет риска спутать дату и время дня с другими, определенными в этом Международный стандарт. "

Вы всегда можете подать отчет об ошибке (https://bugreports.qt.io/)), чтобы сообщить людям Qt об этой небольшой несоответствии и посмотреть, что они скажут об этом.

0 голосов
/ 18 ноября 2010

Ошибка Qt 9698 о поведении QDateTime::toString(Qt::ISODate).Отсутствие указателя часового пояса сообщается там.Не стесняйтесь голосовать за ошибку.

...