Как преобразовать QString в QDate в определенном формате?

У меня есть QDateEdit в моем графическом интерфейсе, из которого я конвертирую QDate в QString и добавить его в мою базу данных. QString Дата сохраняется в базе данных в следующем формате: 20.12.2015.

В случае, если пользователь хочет изменить дату, мне нужно показать дату на QDateEdit поле на GUI снова. Следовательно, мне нужно получить базу данных, вернуть дату (которая находится в QString формат) и преобразовать его в QDate назад, чтобы поставить его на QDateEdit поле в графическом интерфейсе.

Тем не менее, я не могу преобразовать это QString формат (то есть: 20/12/2015) в QDate используя следующее:

QString date_string_on_db = "20/12/2015";
QDate Date;
Date.fromString(date_string_on_db,"dd/MM/YYYY");

Date всегда возвращается invalid,

что я должен делать?

1 ответ

Решение

Прежде всего, строка формата должна быть dd/MM/yyyy, Документация Qt для QDate класс говорит, что yyyy распознается как четырехзначный номер года.

На втором месте, fromString это static функция, которая возвращает новый QDate, В настоящее время возвращаемое значение этой функции отбрасывается: оно не записывается обратно в Date переменная, как вы могли подумать. Полный правильный код должен выглядеть следующим образом:

QString date_string_on_db = "20/12/2015";
QDate Date = QDate::fromString(date_string_on_db,"dd/MM/yyyy");
Другие вопросы по тегам