ZBLOG

E:\SvnCode\SSD_QC\ExtTransferService-QC\Trunk\src\main.cpp:144: error: C2440: “”: 无法从“initializer list”转换为“QDate” ..\src\main.cpp(144): error C2440: “”: 无法从“initializer list”转换为“QDate” ..\src\main.cpp(144)...

出现这个错误是因为在某些情况下,QDate 的构造函数不接受初始化列表的格式。在Qt中,你需要明确使用 QDate::fromString() 或直接通过提供年、月、日等参数来创建 QDate 对象。下面是修正后的代码:

  1. #include <QCoreApplication>
  2. #include <QDateTime>
  3. #include <QString>
  4. #include <QDebug>
  5. int main(int argc, char *argv[])
  6. {
  7. QCoreApplication a(argc, argv);
  8. // 输入的时间字符串(例如:2025-02-19_22_07_01_429)
  9. QString datetimeStr = "2025-02-19_22_07_01_429";
  10. // 使用split方法分割字符串
  11. QStringList parts = datetimeStr.split(QRegularExpression("[-_:]")); // 按照-、_、:分割
  12. // 检查分割后的部分数量是否正确
  13. if (parts.size() != 7) {
  14. qDebug() << "时间字符串格式错误!";
  15. return a.exec();
  16. }
  17. // 提取年、月、日、时、分、秒和毫秒
  18. int year = parts[0].toInt();
  19. int month = parts[1].toInt();
  20. int day = parts[2].toInt();
  21. int hour = parts[3].toInt();
  22. int minute = parts[4].toInt();
  23. int second = parts[5].toInt();
  24. int millisecond = parts[6].toInt();
  25. // 创建 QDateTime 对象,并设置为 UTC 时间
  26. QDate date(year, month, day);
  27. QTime time(hour, minute, second, millisecond);
  28. QDateTime dateTime(date, time, Qt::UTC);
  29. // 获取 UTC 时间戳(单位:毫秒)
  30. qint64 utcTimestampMillis = dateTime.toMSecsSinceEpoch();
  31. // 输出结果
  32. qDebug() << "UTC 时间戳(毫秒):" << utcTimestampMillis;
  33. return a.exec();
  34. }

更改点:

  1. 创建 QDateQTime 对象:分别使用 QDate(year, month, day)QTime(hour, minute, second, millisecond) 来创建日期和时间对象。
  2. 然后将这两个对象传递给 QDateTime 构造函数

通过这样的更改,可以避免转换错误,同时确保代码能够正常编译并运行。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=22020

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?