У меня есть база данных с несколькими строками, я получаю эти записи из запроса и получаю данные этого формата в QString:
«Понедельник, 13 ноября 2017 г. 09:48:45 +0000»
Итак, мне нужно преобразовать это на основе культуры, например, если я хочу преобразовать в итальянскую культуру?
Таким образом, результат будет:
«Lun, 13 ноября 2017 09:48:45»
Существуют ли в Qt такой тип конвертации или я должен действовать вручную?
Спасибо всем
Qt предоставляет QLocale
класс для обработки специфики языка / страны. Это имеет перегрузки QLocale::toString()
которые принимают QDateTime
,
Он также имеет функцию QLocale::toDateTime()
сделать обратную операцию. Но в вашем случае не местный осведомленный QDateTime::fromString()
должно сработать.
В конце у вас должно быть что-то вроде этого (+ или — некоторые параметры для точного формата, который вы хотите).
QString source = "Mon, 13 Nov 2017 09:48:45 +0000";
QDateTime dt = QDateTime::fromString(source, Qt::RFC2822Date);
QString result = QLocale().toString(dt, Qt::RFC2822Date);
Обратите внимание, что QLocale()
создает экземпляр на основе текущего пользовательского параметра в базовой ОС. Вы также можете указать конкретный язык / страну, например: QLocale(QLocale::Italian)
,
Других решений пока нет …