【如何在日志中输出精确到毫秒的时间戳】

1. 需求

在日志中输出精确到毫秒级的时间戳
格式为:%Y-%m-%d %H:%M:%S.%MS
如:2024-05-30 22:33:25.821

2. 代码实现

#include <iostream>
#include <chrono>
#include <iomanip>
#include <sstream>
#include <ctime>std::string getCurrentTimeStampMs()
{// 获取当前时间auto now = std::chrono::system_clock::now();// 转换成time_tauto time_t_now = std::chrono::system_clock::to_time_t(now);// 转换为tm结构来获取日期和时间std::tm local_time;
#ifdef _WIN32localtime_s(&local_time, &time_t_now);
#elselocaltime_r(&time_t_now, &local_time);
#endif// 返回当前时间与纪元之间的时间间隔auto duration_since_epoch = now.time_since_epoch();// 将时间间隔转换为毫秒表示,得到毫秒数auto millis = std::chrono::duration_cast<std::chrono::milliseconds>(duration_since_epoch).count();// 获取毫秒部分auto milliseconds = millis % 1000;// 构造一个字符串流来格式化输出std::ostringstream oss;oss << std::put_time(&local_time, "%Y-%m-%d %H:%M:%S");oss << "." << std::setfill('0') << std::setw(3) << milliseconds;return oss.str();
}int main() {std::cout << getCurrentTimeStampMs() << std::endl;std::cout << getCurrentTimeStampMs() << std::endl;return 0;
}

输出
在这里插入图片描述

3.总结

3.1 time_t

time_t 是 C 和 C++ 中用于表示时间的类型,通常被定义为整数类型(通常是 long 或 long long)。它通常表示从某个固定的时间点(通常是 1970 年 1 月 1 日的午夜,也称为 Unix 纪元)经过的秒数,精确度只有秒级

3.2 std::chrono::system_clock

std::chrono::system_clock 是 C++11 中的一个时钟类,用于表示系统时钟。它是 C++ 标准库提供的一种高精度时钟,可以用来测量时间间隔、获取当前时间等操作。

std::chrono::system_clock 的精度取决于操作系统和编译器的实现,通常精确到纳秒级别。它提供了一系列的成员函数,用于获取当前时间、转换时间点、计算时间差等操作。

以下是一些 std::chrono::system_clock 的常用成员函数:

  • now(): 返回当前时钟的当前时间点。
  • to_time_t(): 将时间点转换为 time_t 类型,以便与 C 的时间操作函数兼容。
  • from_time_t(): 将 time_t 类型转换为时间点。
  • time_since_epoch(): 返回时间点与纪元之间的时间间隔。
  • to_utc_time(): 将时间点转换为 UTC 时间。
  • from_utc_time(): 将 UTC 时间转换为时间点。

以下是一个简单的示例,演示了如何使用 std::chrono::system_clock 获取当前时间:

#include <iostream>
#include <chrono>int main() {// 获取当前时间点auto now = std::chrono::system_clock::now();// 将时间点转换为 time_t 类型std::time_t now_time_t = std::chrono::system_clock::to_time_t(now);// 打印当前时间std::cout << "Current time: " << std::ctime(&now_time_t);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/338272.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTTP请求拦截器链

文章目录 HTTP请求拦截器链需求定义写一个Controller方法接口写三个http请求拦截器把拦截器加入到配置中&#xff0c;并且配置拦截规则在postman里面发送请求&#xff0c;看下测试结果是否正确第三个参数的作用 HTTP请求拦截器链 需求定义 我们写一个包含三个HTTP请求拦截器的…

硬币检测电路设计

一、来源&#xff1a;凡亿教育 第一场&#xff1a;硬币检测装置原理分析、电路设计以及器件选型_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Zh4y1V7Px/?p1&vd_source43eb1cb50ad3175d7f3b9385905cd88f 二、开发软件&#xff1a;KEIL MDK 三、主控芯片&#…

vs2019 c++20 规范 STL库中关于时间的模板

在学习线程的时候&#xff0c;一些函数会让线程等待或睡眠一段时间。函数形参是时间单位&#xff0c;那么在 c 中是如何记录和表示时间的呢&#xff1f;以下给出模板简图&#xff1a; 谢谢

CMake的作用域:public/private/interface

在 CMake 中&#xff0c;public、private和 interface是用来指定目标属性的作用域的关键字&#xff0c;这三个有什么区别呢&#xff1f;这些关键字用于控制属性的可见性和传递性&#xff0c;影响了目标之间的依赖关系和属性传递。 public 如果在一个目标上使用 public关键字时…

mysql去除重复数据

需求描述 doc表有很多重复的title,想去除掉重复的记录 表结构 CREATE TABLE doc (id INT PRIMARY KEY,title VARCHAR(255),content TEXT );去重SQL -- 创建临时表 CREATE TEMPORARY TABLE temp_doc AS SELECT * FROM doc WHERE 10;-- 插入唯一的记录&#xff08;每个title最…

FPGA定点数FFT过后转换为浮点数与Matlab计算的FFT结果进行比对

目录 1.前言2.FPGA的testbench中如何读取数据文件3.FPGA的testbench中如何将输出数据存储在文件中4.Matlab去读取testbench存储的文件数据4.1纯数字不带编码4.2 带编码的数据&#xff0c;如定点数 微信公众号获取更多FPGA相关源码&#xff1a; 1.前言 前面一篇文章讲了&…

基础—SQL—DCL(数据控制语言)小结

一、总结 在SQL分类中的DCL语句部分&#xff0c;主要讲到了两个部分的知识。 1、用户管理 用户管理&#xff0c;主要是管理哪些用户可以访问当前 mysql 数据库。 包括&#xff1a;创建用户、修改用户密码以及删除用户 2、权限控制 权限管理&#xff0c;主要是控制我们当前用户…

iOS App Tech Support(URL)

咪萌是一个语音类交友直播App&#xff0c;分成红艳知己&#xff0c;点唱大厅&#xff0c;歌手驻唱等不同房间分类&#xff0c;广场可以看到其他人发的一些动态&#xff0c;一个非常不错的App 如果您有任何疑问&#xff0c;您可以留言或者将问题发送至我们的邮箱。 我们会第一时…

Python知识点5---字符串的使用

提前说一点&#xff1a;如果你是专注于Python开发&#xff0c;那么本系列知识点只是带你入个门再详细的开发点就要去看其他资料了&#xff0c;而如果你和作者一样只是操作其他技术的Python API那就足够了。 Python的字符串在使用上和其他语言的差别不大&#xff0c;常规操作都…

GPT-4o VS GPT-3.5 完胜

前言&#xff1a; 最近&#xff0c;GPT-4o已经限时免费开放了&#xff0c;试了一下&#xff0c;然后&#xff0c;说我的时间到了&#xff0c;然后&#xff0c;有给我转到3.5&#xff0c;正好遇到一个问题做一下对吧&#xff0c;感觉4O完胜啊。3.5还是很好胡诌&#xff0c;也就…

java web爬虫

目录 读取本地文件 从网站读取文件 java爬虫 总结 读取本地文件 import java.io.File; import java.io.PrintWriter; import java.util.Scanner;public class ReplaceText {public static void main() throws Exception{File file new File("basic\\test.txt"…

如何使用Dora SDK完成Fragment流式切换和非流式切换

我想大家对Fragment都不陌生&#xff0c;它作为界面碎片被使用在Activity中&#xff0c;如果只是更换Activity中的一小部分界面&#xff0c;是没有必要再重新打开一个新的Activity的。有时&#xff0c;即使要更换完整的UI布局&#xff0c;也可以使用Fragment来切换界面。 何…

激光焊接机作为一种高效、精密的焊接设备

激光焊接机是一种用于材料加工时激光焊接的机器&#xff0c;以下是对其的详细介绍&#xff1a; 1. 定义与别称&#xff1a; 激光焊接机&#xff0c;又常称为激光焊机、镭射焊机&#xff0c;是材料加工激光焊接时用的机器。 2. 工作原理&#xff1a; 激光焊接是利用高能量…

进程间通信(27000字超详解)

&#x1f30e;进程间通信 文章目录&#xff1a; 进程间通信 进程间通信简介       进程间通信目的       初识进程间通信       进程间通信的分类 匿名管道通信       认识管道       匿名管道       匿名管道测试       管道的四种…

电商商城管理系统

前言&#x1f440;~ 将近一个月没更新了&#xff0c;最近忙着学校的大作业&#xff0c;一个是微信小程序的、一个是互联网编程的&#xff0c;也是忙完了这个大作业&#xff0c;这个大作业前端使用了vue、后端使用了java&#xff0c;接下来展示一些效果图&#xff0c;如果有需要…

HTTPS协议原理

HTTPS协议原理 一.前言-为何要有https协议二.加密与中间方劫持1.什么是加密2.为何要加密3.对称加密1.小例子2.好处和缺点 4.非对称加密5.数据指纹/数据摘要 三.站在设计者的角度提出方案1.只使用非对称加密 : 且只有server有密钥2.只使用非对称加密 : 且双方都有密钥3.非对称对…

网络安全-钓鱼篇-利用cs进行钓鱼

一、环境 自行搭建&#xff0c;kill&#xff0c;Windows10&#xff0c;cs 二、原理 如图所示 三、钓鱼演示 首先第一步&#xff1a;打开System Profiler-分析器功能 选择克隆www.baidu.com页面做钓鱼 之后我们通过包装域名&#xff0c;各种手段让攻击对象访问&#xff1a;h…

TH方程学习(3)

一、编程实现 根据论文给出的案例&#xff0c;使用TH方程进行数值仿真 1.初始化条件 %% 参考文献<New State Transition Matrix for Relative Motion on an Aribitrary Elliptical Orbit> %% 作者 Yamanaka Koji clc;clear global miu Re miu 3.986e5; Re 6378.137;…

阿里云语音合成TTS直播助手软件开发

阿里云的TTS比较便宜&#xff0c;效果比不了开源克隆的那种&#xff0c;比纯机器人效果好一点点 阿里云sambert https://help.aliyun.com/zh/dashscope/developer-reference/quick-start-13 Sambert系列模型 1万字1元 &#xff0c;每主账号每模型每月3万字免费 创建API-KEY htt…