Политика конфиденциальностиКонтактыО сайтеОтзывыGitHubDonate
© EVILEG 2015-2018
Рекомендует хостинг
TIMEWEB
ПБ
14 января 2019 г. 12:56

Qt, QDateTime

Ребята, привет. Помогите с решением простейшей задачи.

QDateTime from = QDateTime::fromString("31 Jan 2019 00:00:00", "dd MMM yyyy hh:mm:ss");
QString result = from.toString("dd-MM-yyyy hh:mm:ss");
qDebug() << result;

Выводится "", не понимаю, где ошибся.

11

Добрый день.

Ну если честно, то здесь нет ошибки.

Я сделал тестовый проект. Скопировал туда код и сработало как надо.

#include <QCoreApplication>

#include <QDateTime>
#include <QString>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QDateTime from = QDateTime::fromString("31 Jan 2019 00:00:00", "dd MMM yyyy hh:mm:ss");
    QString result = from.toString("dd-MM-yyyy hh:mm:ss");
    qDebug() << result;

    return a.exec();
}
0
ПБ

И что мне делать? Мне же нужно получить 31-01-2019 00:00:00, а я получаю пустую строку.

0

повторить тестовый проект, который я сделал. Просто создать консольное приложение и скопировать мой код в main.cpp. Если также не будет работать, то писать на багтрекер Qt, вполне возможно, что это баг.

Если нормально выводится, то как минимум проект полностью очистить и пересобрать.

Также поменять версию Qt.

0

а не может быть проблемы с локализацией?

0

я как-то не подумал об этом... Может быть действительно Топик-Стартер устаовил свою локаль в рамках проекта...

Тогда тестовый проект должен показать это.

0
ПБ

Вот так тоже пустая строка выводится.

QLocale setLocale  = QLocale(QLocale::English, QLocale::UnitedStates);
QDateTime from = QDateTime::fromString("25 Feb 2018 00:00:00", "dd MMM yyyy hh:mm:ss");
QString result = setLocale.toString(from, "dd-MM-yyyy hh:mm:ss");
qDebug() << result;
0
#include <QCoreApplication>
#include <QDateTime>
#include <QLocale>
#include <QtDebug>

int main(int argc, char *argv[])
{
  QCoreApplication a(argc, argv);

  QLocale locale("english");
  QDateTime dt = locale.toDateTime("31 Jan 2019 00:00:00", "dd MMM yyyy hh:mm:ss");
  qDebug() << dt.toString();

  return a.exec();
}

Вот так попробуйте

1

Здесь вы хоть и определили другую локализацию, но переменную from создаёте без её учёта.

0
ПБ
QLocale setLocale  = QLocale(QLocale::English, QLocale::UnitedStates);
QDateTime from = setLocale.toDateTime("25 Feb 2018 00:00:00", "dd MMM yyyy hh:mm:ss");
QString result = from.toString("dd-MM-yyyy hh:mm:ss");
qDebug() << result;
1

Всё получилось?

0
0

Комментарии

Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
A
22 января 2019 г. 21:22
Allyonz

C++ - Тест 001. Первая программа и типы данных

  • Результат:40баллов,
  • Очки рейтинга-8
A
22 января 2019 г. 14:15
Alex

Qt - Тест 001. Сигналы и слоты

  • Результат:89баллов,
  • Очки рейтинга6
IO
20 января 2019 г. 18:39
Ivan Otreshko

C++ - Тест 003. Условия и циклы

  • Результат:0баллов,
  • Очки рейтинга-10
Последние комментарии
22 января 2019 г. 13:17
Евгений Легоцкой

Создайте тогда тему здесь на форуме в разделе Qt с выкладками кода и вашими попытками внедрения делегата, позже гляну или может кто-то ещё глянет из опытных пользователей.
I
22 января 2019 г. 13:13
IscanderChe

Не проще тогда использовать сразу кастомный делегат с чекбоксом? Я попробовал, но там засада в том, что чекбокс показывается только при щелчке на ячейку, а дефолтно показывается значение. Как ...
22 января 2019 г. 12:15
Евгений Легоцкой

Если будет не приемлемо потом, то тогда через кастомный Item Delegate нужно будет перерисовать ячейки в той колонке.
I
22 января 2019 г. 12:09
IscanderChe

Получилось приемлемо. Спасибо!Нюанс только в том, что поле рядом с чекбоксом не пропадает, оно просто пустое, что видно при выделении ячейки. Но этого достаточно.
22 января 2019 г. 11:50
Евгений Легоцкой

Переопределить метод data для той колонки и роли Qt::DisplayRole, чтобы в том случае возвращался QVariant() я так думаю... Но возможно, что у вас там будут нюансы, если вы туда чекбокс за...
Сейчас обсуждают на форуме
23 января 2019 г. 7:54
Михаиллл

Зарание спасибо.А еще на эту тему можно будет сделать статью. Это контент будет уникальным.
23 января 2019 г. 7:37
Евгений Легоцкой

Hello. Maybe the English will be better for you? I think russian is not native language for you, or did I mistake? Did I undesrtood rightly, that you mean this documentation ( ...
I
22 января 2019 г. 13:45
IscanderChe

Всем добрый день. Суть задачи: надо, чтобы в одной из колонок QTableView вместо хранимого в QSqlTableModel значения выводился чекбокс и при смене состояния чекбокса значения в базе тоже ...
M
22 января 2019 г. 13:15
Max-P85

Евгений, огромное спасибо, все работает!
Присоединяйтесь к нам в социальных сетях

Для зарегистрированных пользователей на сайте присутствует минимальное количество рекламы