QT与嵌入式——获取网络实时时间
目录
1、使用QT通过网络API接口获取网络实时时间
1.1、首先在网上找一个获取实时时间的API接口
1.2、 根据第一步获取的链接来发送请求
1.3、通过connect链接信号与槽
注意的点:
2、为什么需要网络实时时间
3、获取本机的实时时间
4、顺带提一句
1、使用QT通过网络API接口获取网络实时时间
QString urlStr = "http://api.k780.com/?app=life.time&appkey=74655&sign=f0fc1a4e2b7459957de0ddf866ace591&format=json";QUrl url(urlStr);// 创建请求QNetworkRequest request(url);// 发送 GET 请求QNetworkReply *reply = networkManager->get(request);// 连接信号槽来处理响应connect(reply, &QNetworkReply::finished, [=]() {// 检查请求是否成功if (reply->error() != QNetworkReply::NoError) {qDebug() << "Request failed: " << reply->errorString();}// 获取返回的 JSON 数据QByteArray responseData = reply->readAll();// 解析 JSON 数据QJsonDocument jsonDoc = QJsonDocument::fromJson(responseData);if (!jsonDoc.isObject()) {qDebug() << "Failed to parse JSON";}qDebug() << jsonDoc;QJsonObject jsonObject = jsonDoc.object();if (jsonObject.contains("datetime_1")) {time = jsonObject["datetime_1"].toString();qDebug() << "Real-time time: " << time;} else {qDebug() << "Time not found in response";}reply->deleteLater(); // 释放 reply 对象});
打印的结果
1.1、首先在网上找一个获取实时时间的API接口
列如:
北京时间校准接口api - 数据接口 - NowAPI
时间操作[取当前北京时间]免费API - 提供免费接口调用平台
根据第一个为例
第一步:网站给的API示例
第二步:API链接的参数
第三步:API的格式
最终得到一个链接
https://sapi.k780.com/?app=life.time&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json
打开链接就可以看见返回了一个json数据包,包含了时间的数据,标准时间到现在的秒数,毫秒数,实时时间,中文编码的实时时间,周数等等...
1.2、 根据第一步获取的链接来发送请求
QString urlStr = "http://api.k780.com/?app=life.time&appkey=74655&sign=f0fc1a4e2b7459957de0ddf866ace591&format=json";QUrl url(urlStr);// 创建请求QNetworkRequest request(url);// 发送 GET 请求QNetworkReply *reply = networkManager->get(request);
还是根据网站给的
我们采用get请求
1.3、通过connect链接信号与槽
connect(reply, &QNetworkReply::finished, [=]() {// 检查请求是否成功if (reply->error() != QNetworkReply::NoError) {qDebug() << "Request failed: " << reply->errorString();}// 获取返回的 JSON 数据QByteArray responseData = reply->readAll();// 解析 JSON 数据QJsonDocument jsonDoc = QJsonDocument::fromJson(responseData);if (!jsonDoc.isObject()) {qDebug() << "Failed to parse JSON";}qDebug() << jsonDoc;QJsonObject jsonObject = jsonDoc.object();if (jsonObject.contains("datetime_1")) {time = jsonObject["datetime_1"].toString();qDebug() << "Real-time time: " << time;} else {qDebug() << "Time not found in response";}reply->deleteLater(); // 释放 reply 对象});
解释一下代码:我们直接读取API接口返回的数据
返回的数据是json数据包,格式就是直接打开网页看见的样子,所以如果我要得到datetime_1;这个数据,需要自己提取,改信号与槽就是在获取与处理得到的json数据包;
注意的点:
如果获取成功返回的“success”的值为1;时间的数据在“result”里面,所以我们需要先提取“result”的值再提取”datetime_1“的值
如果获取不成功(网络不好或者访问次数到限制了——免费的一小时只能访问200次)
“success”的值为0;
2、为什么需要网络实时时间
我们知道,QT自带有获取本机实时时间的函数,所以如果直接调用不是更简单吗?
但是我们是QT与嵌入式;如果开发板没有自带RTC,那么我们用QT的获取本机实时时间获取到的应该是系统装载好的时候的时间,往后的时间开发板是不会记录的,所以本文介绍的方法,适用于没有RTC的开发板
但是也顺便介绍一下,获取本机实时时间的方式
3、获取本机的实时时间
NOWTime = QDateTime::currentDateTime();// 将时间格式化为字符串QString sendTime = NOWTime.toString("yyyy-MM-dd HH:mm:ss");
简单粗暴
第一句获取当前时间的时间戳
第二句将时间戳以"yyyy-MM-dd HH:mm:ss"的格式存入sendTime这个qstring
4、顺带提一句
往上还有很多TCP,NTP的方式,个人感觉对我一个小白来说,介绍都不是很友好,如果是像我一样的小白,还是用别人做好的API接口方便
相关文章:

QT与嵌入式——获取网络实时时间
目录 1、使用QT通过网络API接口获取网络实时时间 1.1、首先在网上找一个获取实时时间的API接口 1.2、 根据第一步获取的链接来发送请求 1.3、通过connect链接信号与槽 注意的点: 2、为什么需要网络实时时间 3、获取本机的实时时间 4、顺带提一句 1、使用QT通过…...

优化装配,提升品质:虚拟装配在汽车制造中的关键作用
汽车是各种零部件的有机结合体,因此汽车的装配工艺水平和装配质量直接影响着汽车的质量与性能。在汽车装配过程中,经常会发生零部件间干涉或装配顺序不合理等现象,且许多零部件制造阶段产生的质量隐患要等到实际装配阶段才能显现出来…...

Bug的严重等级和优先级别与分类
目录 前言 1. Bug的严重等级定义 2.Bug的优先等级 3.一般 BUG 的正规的处理流程 4.BUG严重等级划分 5.BUG紧急程度定义 前言 Bug是指在软件开发或者系统运行过程中出现的错误、缺陷或者异常情况。它可能导致系统无法正常工作、功能不完整、数据错误或者界面异常等问题。 …...

游戏引擎学习第13天
视频参考:https://www.bilibili.com/video/BV1QQUaYMEEz/ 改代码的地方尽量一张图说清楚吧,懒得浪费时间 game.h #pragma once #include <cmath> #include <cstdint> #include <malloc.h>#define internal static // 用于定义内翻译单元内部函数 #…...
bind返回失败(ctrl+c)结束后不能再次加载
问题现象(VxWorks): 在测试的时候发现使用ctrlc打断程序后再次调用bind绑定失败 错误返回 0x30 问题分析: 1、程序没有开启端口复用。 2、程序在使用ctrlc打断后 vxWorks的打断和linux不相同,并没有清除底层的端口&a…...

菜鸟驿站二维码/一维码 取件识别功能
特别注意需要引入 库文 ZXing 可跳转: 记录【WinForm】C#学习使用ZXing.Net生成条码过程_c# zxing-CSDN博客 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using static System.Net.…...

23种设计模式-备忘录(Memento)设计模式
文章目录 一.什么是备忘录设计模式?二.备忘录模式的特点三.备忘录模式的结构四.备忘录模式的优缺点五.备忘录模式的 C 实现六.备忘录模式的 Java 实现七.总结 类图: 备忘录设计模式类图 一.什么是备忘录设计模式? 备忘录设计模式(…...
搜维尔科技:Manus遥操作五指机械手专用手套惯性高精度虚拟现实
Manus遥操作五指机械手专用手套惯性高精度虚拟现实 搜维尔科技:Manus遥操作五指机械手专用手套惯性高精度虚拟现实...
MySql面试题.运维面试题之五
《(全国)MySQL数据库DBA测试题-第1套》 卷面总分 题号 单选题 多选题 判断题 100 题分 42 40 18 得分 一、单选题(每题3分,共计42分;得分____) 1. 二进制rpm包安装的mysql数据库,默认的数据文件存放在如下哪个目录里? A、/usr/local/mysql B、/tmp/ C、/var/lib/my…...

小程序-基于java+SpringBoot+Vue的小区服务管理系统设计与实现
项目运行 1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:…...
JWT 过期后 自动刷新方案
JWT(JSON Web Token)广泛应用于现代 Web 开发中的认证与授权,它以无状态、灵活和高效的特点深受开发者欢迎。然而,JWT 的一个核心问题是 Token 过期后如何处理。本文将总结常见的解决方案,分析其优缺点,并帮…...
react-amap海量点优化
前言:高版本的react-amap 支持MassMarkers 组件用于一次性添加大量的标记点。本次优化的海量点是在低版本react-amap的基础上。官方推荐使用聚合useCluster属性来优化海量点的渲染。 直接附上代码: import React, { Component } from "react"…...

GRU(门控循环单元)详解
1️⃣ GRU介绍 前面介绍的LSTM可以有效缓解RNN的梯度消失问题,但是其内部结构比较复杂,因此衍生出了更加简化的GRU。GRU把输入门和遗忘门整合成一个更新门,并且合并了细胞状态和隐藏状态。于2014年被提出 2️⃣ 原理介绍 GRU的结构和最简单…...
【代码随想录|回溯算法排列问题】
491.非减子序列 题目链接. - 力扣(LeetCode) 这里和子集问题||很像,但是这里要的是非递减的子序列,要按照给的数组的顺序来进行排序,就是如果我给定的数组是[4,4,3,2,1],如果用子集||的做法先进行排序得到…...

Azure Kubernetes Service (AKS)资源优化策略
针对Azure Kubernetes Service (AKS)的资源优化策略,可以从多个维度进行考虑和实施,以提升集群的性能、效率和资源利用率。以下是一些关键的优化策略: 一、 Pod资源请求和限制 设置Pod请求和限制:在YAML清单中为所有Pod设置CPU和…...

R语言 | 宽数据变成一列,保留对应的行名和列名
对应稀疏矩阵 转为 宽数据框,见 数据格式转换 | 稀疏矩阵3列还原为原始矩阵/数据框,自定义函数 df3toMatrix() 目的:比如查看鸢尾花整体的指标分布,4个指标分开,画到一个图中。每个品种画一个图。 1.数据整理&#…...

RTSP播放器EasyPlayer.js播放器在webview环境下,PC和安卓能够正常播放,IOS环境下播放器会黑屏无法播放
流媒体技术分为顺序流式传输和实时流式传输两种。顺序流式传输允许用户在下载的同时观看,而实时流式传输则允许用户实时观看内容。 流媒体播放器负责解码和呈现内容,常见的播放器包括VLC和HTML5播放器等。流媒体技术的应用场景广泛,包括娱乐…...
.NET周刊【11月第3期 2024-11-17】
国内文章 .NET 9使用Scalar替代Swagger https://www.cnblogs.com/netry/p/18543378/scalar-an-alternative-to-swagger-in-dotnet-9 .NET 9 移除了 Swashbuckle.AspNetCore,因为其维护不力,并转向 Microsoft.AspNetCore.OpenApi。除了 Swashbuckle&am…...
c语言数据22数组使用
1.1数组分配的空间 int a[10]{1,2,3,4,5,6,7,8,9,10};//分配空间 元素类型大小int4*元素个数1040byte 元素之间空间连续 数组名代表数组首元素地址;a 取的是a[0]的地址;&a 是整个数组的地址 说明: 数组首元素地址: 0号元…...
深入理解TensorFlow中的形状处理函数
摘要 在深度学习模型的构建过程中,张量(Tensor)的形状管理是一项至关重要的任务。特别是在使用TensorFlow等框架时,确保张量的形状符合预期是保证模型正确运行的基础。本文将详细介绍几个常用的形状处理函数,包括get_…...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...

Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...

k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...

中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...

LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf
FTP 客服管理系统 实现kefu123登录,不允许匿名访问,kefu只能访问/data/kefu目录,不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...