Конвертировать дату QString (формат RFC 822) в другой формат QString, основанный на культуре

У меня есть база данных с несколькими строками, я получаю эти записи из запроса и получаю данные этого формата в QString:

«Понедельник, 13 ноября 2017 г. 09:48:45 +0000»

Итак, мне нужно преобразовать это на основе культуры, например, если я хочу преобразовать в итальянскую культуру?

Таким образом, результат будет:

«Lun, 13 ноября 2017 09:48:45»

Существуют ли в Qt такой тип конвертации или я должен действовать вручную?

Спасибо всем

1

Решение

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),

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector