Измените указанную строку на QDateTime - PullRequest
0 голосов
/ 03 мая 2018
QString timestr("Fri Jan 5 14:03:11 CST 2018");
QDateTime time1 = QDateTime::fromString(timestr, "ddd MMM d hh:mm:ss CST yyyy");
qDebug() << time1.toString("yyyyMMdd");

Я пытаюсь преобразовать строку в более простое описание времени, однако это не удалось. В чем может быть проблема с моим QString?

1 Ответ

0 голосов
/ 03 мая 2018

\ note В отличие от других версий этой функции, названия дней и месяцев должны быть на местном языке пользователя. Можно использовать только английский имена, если язык пользователя английский.

Обратите внимание, что это системный языковой стандарт, а не языковой стандарт по умолчанию, который вы могли установить в QLocale. Для разбора английской строки даты, подобной этой, вам нужно использовать QLocale :: fromString () в экземпляре на английском языке. Поэтому следующий код вернется правильно.

QLocale loc(QLocale::English);
    QString timestr("Fri Jan 5 14:03:11 CST 2018");
    QDateTime time1 = loc.toDateTime(timestr, "ddd MMM d hh:mm:ss CST yyyy");
    qDebug() << time1.toString("yyyyMMdd");

Надеюсь, что это может помочь другим с той же проблемой.

...