2015-12-20 5 views
6

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

В случае, если пользователь хочет изменить дату, мне нужно снова указать дату на поле QDateEdit в графическом интерфейсе. Следовательно, мне нужно получить базу данных, вернуть дату (которая находится в формате 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.

Что мне делать?

+4

Попробуйте использовать строку 'dd/MM/yyyy' для строки формата. –

ответ

9

Прежде всего, строка формата должна быть dd/MM/yyyy. Qt documentation for the QDate class говорит, что yyyy признан четырехзначным годом.

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

QString date_string_on_db = "20/12/2015"; 
QDate Date = QDate::fromString(date_string_on_db,"dd/MM/yyyy"); 
+0

Спасибо за ответ. Я очень ценю ваше объяснение QDate. –

Смежные вопросы