标签: qdate

Qt ISODate格式化日期/时间,包括时区

有没有人知道如何将时区包含在QDateTime的ISO字符串表示中?

我应该可以使用以下内容:

qDebug() << QDateTime::currentDateTime().toString(Qt::ISODate);
Run Code Online (Sandbox Code Playgroud)

但这总是以UTC格式出现:

2014-02-24T01:29:00Z
Run Code Online (Sandbox Code Playgroud)

目前,我正在解决这个问题的方法是通过显式设置偏移量来强制TimeSpec为Qt :: offsetFromUtc,这是我最初从QDateTime获得的.

QDateTime now = QDateTime::currentDateTime();
int offset = now.offsetFromUtc();
now.setOffsetFromUtc(offset);
qDebug() << now.toString(Qt::ISODate);
Run Code Online (Sandbox Code Playgroud)

这给出了最初的预期:

2014-02-24T01:29:00+02:00
Run Code Online (Sandbox Code Playgroud)

有没有人知道如何以更清洁的方式做到这一点,还是必须将其记录为错误?

编辑:我正在使用Qt5.2.1

更新:

以下小程序显示了我的意思:

#include <QtCore/QDateTime>
#include <QtCore/QDebug>

int main(int argc, int argv){
    qDebug() << QDateTime::currentDateTime().toString(Qt::ISODate);
    qDebug() << QDateTime::currentDateTime().toTimeSpec(Qt::OffsetFromUTC).toString(Qt::ISODate);

    QDateTime now = QDateTime::currentDateTime();
    int offset = now.offsetFromUtc();
    now.setOffsetFromUtc(offset);
    qDebug() << now.toString(Qt::ISODate);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

生成以下输出:

"2014-02-24T10:20:49" 
"2014-02-24T08:20:49Z" 
"2014-02-24T10:20:49+02:00"
Run Code Online (Sandbox Code Playgroud)

最后一行是预期的那一行.请注意,第二次转换为UTC,这不是想要的.

c++ qt qdatetime qdate qtcore

9
推荐指数
2
解决办法
1万
查看次数

如何以特定格式将QString转换为QDate?

我有一个QDateEdit在我的GUI中,我将其转换QDateQString并将其添加到我的数据库.该QString日期被保存在这种格式的数据库:20/12/2015.

如果用户想要编辑日期,那么我需要QDateEdit再次在GUI 上的字段上显示日期.因此,我需要获取数据库,带回日期(QString格式为)并将其QDate再次转换回来,以便将其放在QDateEditGUI 上的字段上.

但是,我无法将该QString格式(即:2015年12月20日)转换为QDate使用以下内容:

QString date_string_on_db = "20/12/2015";
QDate Date;
Date.fromString(date_string_on_db,"dd/MM/YYYY");
Run Code Online (Sandbox Code Playgroud)

Date总是返回invalid.

我该怎么办 ?

c++ qstring qt qdate

8
推荐指数
1
解决办法
1万
查看次数

QDate - 错误的一年

我有以下情况:

   QDate fixDate = QDate::fromString(QString("270912"), "ddMMyy");
Run Code Online (Sandbox Code Playgroud)

返回的那一年是1912.我不明白为什么以及如何得到正确的一年.

提前致谢

qt qdate

2
推荐指数
1
解决办法
1834
查看次数

QDate 到 QString

我有一个关于 PyQt4 的问题。我有一个 QDate 类型的日期,我想简单地将其转换为字符串格式而不是 QDate 格式。例如,如果日期是 09/16/2013,如果可能的话,我想将其更改为字符串形式 2013 年 9 月 16 日。

我玩弄了 toString 但我认为它只适用于 C++(除非我弄错了)。

python string pyqt4 qdate

1
推荐指数
1
解决办法
9847
查看次数

如何使用与系统不同的语言环境显示 QDate 月?

该函数QDate::toString(const QString &format)允许显示月份名称MMM(例如“Jan”到“Dec”)或MMMM(例如“January”到“December”)。

但是这个函数使用来自QLocale::system()源代码)的系统区域设置。

QDate对于特定的 QLocale显示带有月份名称的最简单方法是什么?

c++ qt qt5 qdate qlocale

1
推荐指数
1
解决办法
1440
查看次数

QInputDialog和QMessageBox

我正在为使用Qt框架的考试做一些准备,我想知道如何以基本方式使用QInputDialog和QMessageBox(我的考试是手写编码)

Qt API在使用方面真的很难理解它对于我的项目来说很好,因为我可以以一种非常"hacky"的方式完成我想要的东西,我的关于这个主题的设置书很糟糕......

让我谈谈在这种情况下使用QInputDialog和QMessageBox的简洁方法:

#include <QApplication>
#include <QInputDialog>
#include <QDate>
#include <QMessageBox>

int computeAge(QDate id) {
  int years = QDate::currentDate().year() - id.year();
  int days = QDate::currentDate().daysTo(QDate
              (QDate::currentDate().year(), id.month(), id.day()));
  if(days > 0) 
    years--;
  return years
}

int main(int argc, char *argv[]) {
  QApplication a(argc, argv);
  /*  I want my QInputDialog and MessageBox in here somewhere */
  return a.exec();
}
Run Code Online (Sandbox Code Playgroud)

对于我的QInputDialog,我希望用户给出他们的出生日期(不要担心输入验证)我想使用QMessageBox来显示用户的年龄

我只是不明白在基本情况下需要进入QInputDialog和QMessageBox的参数是什么,因为那里似乎没有任何示例.

我怎么做到这一点?

c++ qt dialog qmessagebox qdate

0
推荐指数
1
解决办法
7493
查看次数

如何在字符串中存储值形式QDateEdit?

我想将值从QDateEdit存储到String。我使用了以下代码:

QString str = ui->dateeditobject->date().toString("dd/mm/yyyy")

但是问题是,如您在图中看到的那样,月份值没有被存储。

我要去哪里错了?

qt qdate

0
推荐指数
1
解决办法
1941
查看次数

标签 统计

qdate ×7

qt ×6

c++ ×4

dialog ×1

pyqt4 ×1

python ×1

qdatetime ×1

qlocale ×1

qmessagebox ×1

qstring ×1

qt5 ×1

qtcore ×1

string ×1