\ 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");
Надеюсь, что это может помочь другим с той же проблемой.