首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改QDate显示日期格式的方式

更改QDate显示日期格式的方式
EN

Stack Overflow用户
提问于 2012-11-30 20:08:58
回答 2查看 6.2K关注 0票数 1

我的应用程序有一个QTreeWidget,它在其中一个列中包含一个QDate。由于列接受QVariants,它们实际上可以保存任何类型的数据。我发现,TreeWidget必须使用实际的QDate对象,而不是QStrings,才能使列排序功能正常工作。如果我对日期使用QStrings,它们不会按正确的时间顺序排序,而是按字符串的数值排序。(这是错误的!)我的程序支持几种日期格式:美国风格,欧洲风格,和ISO-8601风格.根据用户选择的日期格式,我希望在整个应用程序中保持所有内容的一致性。

但是,我注意到QDate只显示MM/DD/YYYY格式的日期。还有一个奇怪的错误,QDate在Windows上显示MM/DD/YYYY,而在Linux上显示的代码完全相同。如何让QDate以YYYY/MM/DD或DD/MM/YYYY格式显示日期,而无需将转换为QString?必需的是保持QDate格式的所有内容,这样我就不会破坏QTreeWidget中的列排序函数。

下面是我的代码,它将QString转换为QDate:(nextitem是一个QStringList)

代码语言:javascript
复制
// Convert QString date to QDate to make it sort correctly
                QDate entrydate;
                QString id=nextitem.at(2);

                id=id.remove("/");


                QString datepattern;

                switch(Buffer::date_format){
                case 0: // European
                    datepattern="ddMMyyyy";
                    break;

                case 1: // USA Style
                    datepattern="MMddyyyy";
                    break;

                case 2: // ISO
                    datepattern="yyyyMMdd";
                    break;
                }


                entrydate=QDate::fromString(id,datepattern);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-30 20:21:05

QDate遵循操作系统中的当前设置。如果该设置恰好是MM/DD/YY,那么您将得到该设置。注意:这是用户想要的。所有应用程序中的统一日期格式。

该设置还受OS中当前区域设置的影响。例如,在美国,默认的是MM/DD/YY,而在大多数欧洲国家是DD/MM/YY。

换句话说,不要担心。这不是窃听器,而是一种特征。你不应该试着绕过它。用户不希望他们的应用程序忽略他们的系统设置。如果我的系统设置为以MM/DD/YY格式显示日期,我肯定不希望您的应用程序自己操作,而是以YYYY/MM/DD格式显示日期。

票数 4
EN

Stack Overflow用户

发布于 2017-02-20 12:00:33

您可以使用以下代码:

代码语言:javascript
复制
QVariant var = item->data(i, Qt::DisplayRole);
if (var.type() == QVariant::DateTime)
{
    QDateTime dt = var.value<QDateTime>();
    QString value = dt.toString("yyyyMMdd");  // Or whatever format you need
}
else
    QString value = item->text(i);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13652411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档