QTime

QTime 适用场景:

  • 计时器和倒计时:只需要时分秒的计时功能

  • 日常时间管理:闹钟、日程安排中的时间部分

  • 时间间隔计算:计算两个时间点之间的时长

  • 性能测量:代码执行时间的测量

类别方法/函数描述
创建与获取 QTime(int h, int m, int s = 0, int ms = 0) 构造指定时间。参数范围:h(0-23), m(0-59), s(0-59), ms(0-999)。
  static QTime currentTime() 获取系统当前时间。
  static QTime fromMSecsSinceStartOfDay(int msecs) 从自当天开始以来的毫秒数创建时间。
信息获取 int hour() / minute() / second() / msec() 获取时间各部分。
  int msecsSinceStartOfDay() 获取从当天开始以来的总毫秒数。
有效性检查 bool isNull() 时间是否为空(默认构造)。
  bool isValid() 时间是否有效。
  static bool isValid(int h, int m, int s, int ms = 0) 检查给定时间参数是否有效。
时间运算 QTime addSecs(int s) 返回添加指定秒数后的时间。
  QTime addMSecs(int ms) 返回添加指定毫秒数后的时间。
  int secsTo(QTime t) 计算到此时间t的秒数。
  int msecsTo(QTime t) 计算到此时间t的毫秒数。
字符串转换 QString toString(const QString &format) 按指定格式转换为字符串。
  static QTime fromString(const QString &string, const QString &format) 从字符串按指定格式解析为时间

 

//获取当前时间

    //获取当前时间
    QTime current = QTime::currentTime();

//获取结束时间

//获取结束时间
QTime startendTime  = QTime::currentTime();

//计算耗时:单位:秒

//计算耗时:单位:秒
int elapsed_s = current.secsTo(startendTime);

//计算耗时:单位:毫秒

//计算耗时:单位:毫秒
int elapsed_ms = current.msecsTo(startendTime);

//获取当前的小时

    //获取当前的小时
    int hour = current.hour();

//获取当前的分钟

    //获取当前的分钟
    int minute = current.minute();

// 从字符串解析

    // 从字符串解析
    QTime parsedTime = QTime::fromString("14:30:25", "hh:mm:ss");

 // 创建时间对象

    // 创建时间对象
    QTime time2(33, 30, 25, 500); // 14:30:25.500

// 有效性检查

// 有效性检查
if (time1.isValid()) {
    qDebug() << "时间有效";
}

 

 

💡 重要说明

  • 时间格式:QTime使用24小时制

  • 毫秒精度:实际精度依赖操作系统。

  • 时间运算与回绕:使用addSecs()addMSecs()进行时间加减时,若结果超过23:59:59.999,时间会回绕到当天开始。这在设计跨过午夜的计时器时需要注意。

posted @ 2025-11-26 18:40  家煜宝宝  阅读(5)  评论(0)    收藏  举报