Имеется два шаблона:
const QString yearFormat = "MMM dd yyyy";
const QString timeFormat = "MMM dd hh:mm";
и код, их использующий:
QString data = getText();
auto date = data.indexOf(":") != -1 ? QDateTime::fromString(data, timeFormat) :
QDateTime::fromString(data, yearFormat);
getText() возвращает строки вида "Jan 29 2013" или "Dec 24 11:35", но QDateTime их не хочет парсить, date.toString() возвращает пустую строку
Не уверен на 100% но, попробуйте добавить скобки:
QString data = getText();
auto date = (data.indexOf(":") != -1) ? QDateTime::fromString(data, timeFormat) :
QDateTime::fromString(data, yearFormat);
Дополнено: все таки дело не приоритете, на сколько я понимаю, QDateTime::fromString использует локаль по-умолчанию. Вам необходимо принудительно указать какую локаль успользовать:
QLocale l(QLocale::English);
QDateTime dt = l.toDateTime("Jan 29 2013", yearFormat);
qDebug() << "Dt:" << dt.toString("dd.MM.yyyy");
Дает вывод:
Dt: "29.01.2013"
Сборка персонального компьютера от Artline: умный выбор для современных пользователей