crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> QDate...., Хрень какая то...
LE0N
  опции профиля:
сообщение 31.3.2009, 12:23
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 97
Регистрация: 10.3.2009
Из: Беларусь
Пользователь №: 604

Спасибо сказали: 0 раз(а)




Репутация:   0  


qDebug() << ui.tableWidget->item(i,5)->text();
qDebug() << QDate::fromString(ui.tableWidget->item(i,5)->text(),"dd.MM.yy");

Выводит:
"04.04.09"
QDate("Вс апр 4 1909")
Я, конечно, всё понимаю....НО! Нахера мне 1909 год :( Обязательно вбивать yyyy ? я место хотел сэкономить :(((
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 31.3.2009, 12:33
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(LE0N @ 31.3.2009, 16:23) *
я место хотел сэкономить
А ты не экономь.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
LE0N
  опции профиля:
сообщение 31.3.2009, 13:07
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 97
Регистрация: 10.3.2009
Из: Беларусь
Пользователь №: 604

Спасибо сказали: 0 раз(а)




Репутация:   0  


Жалко, конечно, что такое поведение не документировано....
И ещё больше - что маску типа 20yy задать нельзя...
Я ведь часа два не мог вчера понять в чём дело :) Правда уставший был...Понял только сегодня, когда обратил внимание на год :)

Сообщение отредактировал LE0N - 31.3.2009, 13:09
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 31.3.2009, 13:21
Сообщение #4


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


А если так:

    QString str = "31.03.09";
    QDate date = QDate::fromString(str, "dd.MM.yy");
    date = QDate::fromString(date.toString("dd.MM.'20'yy"), "dd.MM.yyyy");

    qDebug() << date.toString(Qt::SystemLocaleDate);

qDedug пишет:
Цитата
warning: "31.03.2009"

8)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 31.3.2009, 14:19
Сообщение #5


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(igor_bogomolov @ 31.3.2009, 17:21) *
warning: "31.03.2009"
warning-то как раз тут и интересен!
дата-то все равно не та.

-----
Цитата(LE0N @ 31.3.2009, 17:07) *
Жалко, конечно, что такое поведение не документировано...
тут ты не прав:
Цитата
Note that QDate interprets two digit years to be in the 1900s, e.g., 50 will equals 1950.
(второй абзац подробного описания)
и конструктор:
Цитата
QDate::QDate ( int y, int m, int d )
Constructs a date with year y, month m and day d.
If the specified date is invalid, the date is not set and isValid() returns false. A date before 2 January 4713 B.C. is considered invalid.

Warning: Years 1 to 99 are interpreted as being in the 1900s. If you want to specify the year 2010, you must write 2010, not 10.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 31.3.2009, 14:26
Сообщение #6


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


Цитата(Litkevich Yuriy @ 31.3.2009, 15:19) *
дата-то все равно не та.

Не понял? Почему не та?
Я установил QString str = "31.03.09";
получил QDate
"31.03.2009"

???????

Разве не этого добивались?????

Сообщение отредактировал igor_bogomolov - 31.3.2009, 14:30
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 31.3.2009, 14:58
Сообщение #7


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(igor_bogomolov @ 31.3.2009, 18:26) *
получил QDate
"31.03.2009"
ты получил QDate соответствующий 31 марта 1909 года. А то что ты вывел в консоль - это просто химия. В первом посте вывод в консоль сделан для отладки, если я не ошибаюсь.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 31.3.2009, 15:03
Сообщение #8


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


Не знаю, что вы имеете ввиду под химией.
    QDate date = QDate::fromString(str, "dd.MM.yy"); \\ здесь действительно 31 марта 1909 года
    date = QDate::fromString(date.toString("dd.MM.'20'yy"), "dd.MM.yyyy"); \\ а вот здесь уже 31 марта 2009. Не строка, а именно дата.


Такой вот финт ушами. Чем он не устраивает? Небольшим преобразованием получаем то что хотим, икономя при этом место :rolleyes:

Сообщение отредактировал igor_bogomolov - 31.3.2009, 15:14
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 31.3.2009, 15:16
Сообщение #9


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(igor_bogomolov @ 31.3.2009, 19:03) *
Такой вот финт ушами. Чем он не устраивает?
да, факт, это я не понял.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
LE0N
  опции профиля:
сообщение 31.3.2009, 17:02
Сообщение #10


Студент
*

Группа: Участник
Сообщений: 97
Регистрация: 10.3.2009
Из: Беларусь
Пользователь №: 604

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата
Такой вот финт ушами. Чем он не устраивает? Небольшим преобразованием получаем то что хотим, икономя при этом место

Я примерно точно так же ушами вертел :) ПРосто без ковычек :) В первые с датой работаю ))
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 23.10.2019, 20:44