求助各位大神:QDateTime时间转换的问题(Qt C++)

policezdw 2016-12-06 02:39:13
Qt 做数据采集的项目时,从仪器返回的数据,解析出当前时间如下:
starttime = 201612061102264000
这是一个qint64类型的。
请教下,怎么将这个qint64类型的时间转换成从1970.1.1到这个时间的毫秒数(或者秒数)?
...全文
1123 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
policezdw 2016-12-06
  • 打赏
  • 举报
回复
引用 2 楼 qq423399099 的回复:
阅读官方的API: qint64 QIODevice::readLine(char * data, qint64 maxSize) This function reads a line of ASCII characters from the device, up to a maximum of maxSize - 1 bytes, stores the characters in data, and returns the number of bytes read. 可以知道:readLine返回的是读取的一行数据的长度,并将其读取的数据内容缓存到data。通过以下测试: QString exg_str= QString(reply->readLine()); 可以猜测,QString可能会读取缓存区的data并进行const char*到QString的类型强转。 转换成QString以后,再转成QDateTime,然后利用QDateTime的daysTo方法就能求得到19700101的天数
感谢前辈的耐心回答!我试一下!
policezdw 2016-12-06
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
#include <afxdisp.h>
#include <stdio.h>
#include <stdlib.h>
int main() {
    COleDateTime t,t0;
    COleDateTimeSpan ts;
    int nYear;
    int nMonth;
    int nDay;
    int nHour;
    int nMin;
    int nSec;
    int nMilliseconds;
    __int64 starttime =  201612061102264000i64;
    char s[20];
    double totalsec;
    double totalms;

    sprintf(s,"%I64d",starttime);
    sscanf(s,"%4d%2d%2d%2d%2d%2d%3d",&nYear,&nMonth,&nDay,&nHour,&nMin,&nSec,&nMilliseconds);
    t0=COleDateTime( 1970,      1,    1,     0,    0,    0);
    printf("1970-01-01 00:00:00.000\n");
    t =COleDateTime(nYear, nMonth, nDay, nHour, nMin, nSec);
    printf("%4d-%02d-%02d %02d:%02d:%02d.%03d\n",nYear, nMonth, nDay, nHour, nMin, nSec, nMilliseconds);
    ts=t-t0;
    totalsec=ts.GetTotalSeconds();
    printf("totalsec=%.15lg\n",totalsec);
    totalms=totalsec*1000.0+nMilliseconds;
    printf("totalms =%.15lg\n",totalms);

    return 0;
}
//1970-01-01 00:00:00.000
//2016-12-06 11:02:26.400
//totalsec=1481022146
//totalms =1481022146400
//
刚开始学C++\Qt,经常在其他朋友的帖子中看到您的回答。没想到我第一次发帖,您就帮我解答了!真的很感谢! 不知道Qt环境下您可以有相应的代码吗?我对照您的代码,在Qt中找找是否能有相应的方法可以实现。
小灸舞 2016-12-06
  • 打赏
  • 举报
回复
阅读官方的API:
qint64 QIODevice::readLine(char * data, qint64 maxSize)

This function reads a line of ASCII characters from the device, up to a maximum of maxSize - 1 bytes, stores the characters in data, and returns the number of bytes read.

可以知道:readLine返回的是读取的一行数据的长度,并将其读取的数据内容缓存到data。通过以下测试:

QString exg_str= QString(reply->readLine());

可以猜测,QString可能会读取缓存区的data并进行const char*到QString的类型强转。

转换成QString以后,再转成QDateTime,然后利用QDateTime的daysTo方法就能求得到19700101的天数
赵4老师 2016-12-06
  • 打赏
  • 举报
回复
#include <afxdisp.h>
#include <stdio.h>
#include <stdlib.h>
int main() {
    COleDateTime t,t0;
    COleDateTimeSpan ts;
    int nYear;
    int nMonth;
    int nDay;
    int nHour;
    int nMin;
    int nSec;
    int nMilliseconds;
    __int64 starttime =  201612061102264000i64;
    char s[20];
    double totalsec;
    double totalms;

    sprintf(s,"%I64d",starttime);
    sscanf(s,"%4d%2d%2d%2d%2d%2d%3d",&nYear,&nMonth,&nDay,&nHour,&nMin,&nSec,&nMilliseconds);
    t0=COleDateTime( 1970,      1,    1,     0,    0,    0);
    printf("1970-01-01 00:00:00.000\n");
    t =COleDateTime(nYear, nMonth, nDay, nHour, nMin, nSec);
    printf("%4d-%02d-%02d %02d:%02d:%02d.%03d\n",nYear, nMonth, nDay, nHour, nMin, nSec, nMilliseconds);
    ts=t-t0;
    totalsec=ts.GetTotalSeconds();
    printf("totalsec=%.15lg\n",totalsec);
    totalms=totalsec*1000.0+nMilliseconds;
    printf("totalms =%.15lg\n",totalms);

    return 0;
}
//1970-01-01 00:00:00.000
//2016-12-06 11:02:26.400
//totalsec=1481022146
//totalms =1481022146400
//
这个是完整源码 python FastAPI实现 vue 深度学习 大模型 【深度学习毕业设计】基于BERT的电商商品评论情感分析系统(PyTorch+FastAPI+Vue3) 模型微调训练 深度学习毕业设计 python课程设计 完整版 源码+sql脚本+论文 完整版 数据库是mysql 随着电子商务规模持续扩大,商品评论已成为消费者决策与商家改进产品的重要依据。海量评论文本具有口语化、领域词汇密集、正负情感交织等特点,传统基于词典或浅层机器学习的情感分析方法难以充分刻画上下文语义,分类精度受到限制。针对上述问题,本文设计并实现了一套基于 BERT 的电商商品评论情感分析系统,完成从评论采集、模型推理、结果存储到可视化分析的闭环。 系统采用前后端分离架构。后端以 Python 语言和 FastAPI 框架构建 RESTful 接口,使用 SQLAlchemy 访问 MySQL 8 数据库 db_bert_sentiment,核心推理模块基于 PyTorch 与 Transformers 加载中文 BERT 微调模型 BertForSequenceClassification,对评论进行 1 至 5 星五分类,并映射为正面、中性、负面三类情感;当微调模型文件缺失时自动回退到电商情感词典规则引擎,保证系统可用性。前端采用 Vue3、Vite、Element Plus、Pinia 与 ECharts 实现管理端界面,支持单条实时分析、CSV 批量导入、评论维护、统计分析、模型管理、个人中心和操作日志等功能。 在数据库设计方面,系统围绕管理员、评论、分析任务、模型信息、情感关键词和操作日志六类实体建立概念模型,给出独立的实体属性图与实体间关系图,并以表格形式详细列出各表字段名称、类型、长度、是否为空及备注。测试表明,系统能够稳定完成登录鉴权、情感推理、批量任务与多维图表展示,B
内容概要:本文提出了一种基于角蜥蜴优化算法(Harris Hawks Optimization-inspired Lizard Search Algorithm, HLOA)优化BP神经网络的风电功率预测模型,旨在解决传统BP神经网络在风电功率预测中易陷入局部最优、收敛速度慢、预测精度不高等问题。通过HLOA算法对BP网络的初始权重和阈值进行全局优化,提升了模型的泛化能力与训练效率。研究在Matlab平台上完成算法实现,并采用真实风电场数据进行实验验证,结果表明,相较于标准BP及其他优化算法(如GA、PSO)优化的模型,HLOA-BP模型在均方根误差(RMSE)、平均绝对误差(MAE)等关键评价指标上表现更优,具有更强的预测稳定性和准确性。该方法为可再生能源领域的时间序列预测提供了有效的技术路径与实践参考。; 适合人群:具备机器学习、智能优化算法及电力系统基础知识的研究生、科研人员以及从事新能源预测、电力调度等相关工作的工程技术人员。; 使用场景及目标:①提升风电功率预测精度,支撑电网安全稳定运行与能源调度决策;②学习并掌握智能优化算法与神经网络融合建模的方法论;③开展基于Matlab的仿真实验、算法对比与性能评估;④拓展应用于光伏发电、负荷预测等其他非线性时间序列预测任务。; 阅读建议:建议结合提供的Matlab代码深入实践,重点理解HLOA算法的搜索机制及其对BP网络参数的优化过程,通过更换数据集、调整参数配置等方式进行消融实验与对比分析,全面掌握模型构建与调优技巧,进而将其迁移至实际工程项目中应用。

65,213

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧