• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

QDateTime和QString互转、QDateTime转化时间戳、QDateTime支持的字符串格式

武飞扬头像
仙药豆
帮助2

1.QDateTime转QString:

可以使用QDateTime的toString()函数将QDateTime对象转换成指定格式的字符串。例如,要将QDateTime对象转换成“yyyy-MM-dd HH:mm:ss”格式的字符串,可以使用如下代码:

  1.  
    QDateTime datetime = QDateTime::currentDateTime();
  2.  
    QString str = datetime.toString("yyyy-MM-dd HH:mm:ss");

2.QString转QDateTime:

可以使用QDateTime的fromString()函数将字符串转换成QDateTime对象。例如,要将字符串“2021-09-01 12:00:00”转换成QDateTime对象,可以使用如下代码:

  1.  
    QString str = "2021-09-01 12:00:00";
  2.  
    QDateTime datetime = QDateTime::fromString(str, "yyyy-MM-dd HH:mm:ss");

需要注意的是,fromString()函数的第二个参数是指定字符串格式的。如果字符串格式不正确,将无法成功转换,因此应该根据实际情况正确指定格式。

3.将QDateTime对象转换为以秒为单位的时间戳:

  1.  
    QDateTime datetime = QDateTime::currentDateTime();
  2.  
    qint64 timestamp = datetime.toSecsSinceEpoch();

4.将QDateTime对象转换为以毫秒为单位的时间戳:

  1.  
    QDateTime datetime = QDateTime::currentDateTime();
  2.  
    qint64 timestamp = datetime.toMSecsSinceEpoch();

需要注意的是,转换为时间戳时需要使用 qint64 类型的变量来存储结果,因为时间戳可能会超过 int 类型的上限。

5.下面列举了一些常用的 QDateTime 字符串格式:

  • Qt::TextDate:YYYY-MM-DD 格式的日期字符串,例如 2021-05-15。
  • Qt::ISODate:使用 ISO 8601 格式表示日期时间,例如 2021-05-15T17:18:23,其中 T 表示时间分隔符。
  • Qt::ISODateWithMs:类似 ISO 8601 格式,但包含毫秒部分,例如 2021-05-15T17:18:23.127。
  • Qt::RFC2822Date:使用邮件格式表示日期时间,例如 Sat, 15 May 2021 17:18:23 0800。
  • “ddd MMM dd yyyy hh:mm:ss”:自定义格式字符串,其中 ddd 表示星期几的缩写,MMM 表示月份的缩写,例如 Sat May 15 2021 17:18:23。

这些格式可以通过 QDateTime 的 toString() 函数进行转换,例如:

  1.  
    #include <QDateTime>
  2.  
    #include <QDebug>
  3.  
     
  4.  
    int main()
  5.  
    {
  6.  
    QDateTime dt = QDateTime::currentDateTime();
  7.  
     
  8.  
    qDebug() << dt.toString(Qt::TextDate); // 输出: "2021-05-15"
  9.  
    qDebug() << dt.toString(Qt::ISODate); // 输出: "2021-05-15T17:18:23"
  10.  
    qDebug() << dt.toString(Qt::ISODateWithMs); // 输出: "2021-05-15T17:18:23.127"
  11.  
    qDebug() << dt.toString(Qt::RFC2822Date); // 输出: "Sat, 15 May 2021 17:18:23 0800"
  12.  
    qDebug() << dt.toString("ddd MMM dd yyyy hh:mm:ss"); // 输出: "Sat May 15 2021 17:18:23"
  13.  
     
  14.  
    return 0;
  15.  
    }
学新通

需要注意的是,不同的字符串格式具有不同的精度和表现形式,具体选择哪种格式取决于具体的需求。在使用自定义格式字符串时,还可以使用一些格式化映射符号(如 yy 表示年份的后两位,MM 表示月份的数字,等等),从而完成更加精细的格式化操作。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgbjicf
系列文章
更多 icon
同类精品
更多 icon
继续加载