创建一个人类可读的时间戳并存储在 C++ 中的字符串中

2024-01-27

我想根据程序运行的时间创建带有时间戳的文件名,即

logfile_2020-04-21_18:11:10.txt
logfile_2020-04-22_18:13:43.txt
...

我可以得到时间戳(我认为)

std::chrono::steady_clock::time_point timestamp = std::chrono::steady_clock::now();

但我不知道如何将其转换为字符串,更不用说人类可读的字符串了。

时间戳的确切格式并不重要,只要它具有完整的日期和时间即可。有没有一种简单的方法可以使用标准库在 C++ 中做到这一点?


你所要求的没有定义。您的时间戳来自“稳定”时钟它保证单调时间,但与挂钟时间无关,因此无法转换为人类可读的时间戳 https://en.cppreference.com/w/cpp/chrono/steady_clock(想想如果你将系统时间调整-1分钟会发生什么,单调时钟永远不能这样调整!)。单调时钟通常从系统启动时开始计数。如果您想打印您最有可能想要使用的时间戳std::chrono::system_clock https://en.cppreference.com/w/cpp/chrono/system_clock- 例如像这样:

#include <iostream>
#include <chrono>
#include <iomanip>

int main() {
  auto timestamp = std::chrono::system_clock::now();

  std::time_t now_tt = std::chrono::system_clock::to_time_t(timestamp);
  std::tm tm = *std::localtime(&now_tt);

  std::cout << std::put_time(&tm, "%c %Z") << '\n';
  return 0;
}

您可以在以下位置找到有关格式化日期/时间的更多信息std::put_time()文档 https://en.cppreference.com/w/cpp/io/manip/put_time.

Warning: std::localtime可能不是线程安全的!如果您打算在多线程上下文中使用标准库,请检查它的文档。有时还提供可重入版本(通常称为localtime_r https://linux.die.net/man/3/localtime_r).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

创建一个人类可读的时间戳并存储在 C++ 中的字符串中 的相关文章

  • 如何以编程方式将访问键(快捷方式)添加到 WPF ContextMenu?

    我已经有以下内容 var myContextMenu new System Windows Controls ContextMenu var exitItem new MenuItem exitItem Header E xit exitI
  • 如何在C++中生成非常大的随机数

    我想使用 C 生成 0 2 64 范围内的非常大的随机数 我已经使用了 rand 函数 但它没有生成非常大的数字 有人可以帮忙吗 使用c 11 使用标准c 11的随机库 http en cppreference com w cpp nume
  • 如何将这段 javascript 代码重写为 C++11?

    这是我在 Javascript Definitive Guide 中看到的 javascript 闭包代码 我想把它写成C 11 var uniqueID1 function var id 0 return function return
  • 无法使用c#更改视频捕获分辨率

    我正在尝试使用 C 中的 DirectShowNet 更改默认网络摄像头分辨率 据我所知 我需要通过调用 windows win32 api dll 中内置的 VideoInfoHeader 类来更改它以进行 avi 捕获 我有来自 Dir
  • strtok() 使用安全吗[重复]

    这个问题在这里已经有答案了 我读到了很多负面的东西strtok 有人说它已经过时 有人说它不是线程安全的 等等 那么真相是什么 我可以使用吗strtok 它是线程安全的吗 Note 我正在使用 Visual C 您可以使用它 它是标准库的一
  • C# 异步任务比同步慢

    你知道为什么同步斐波那契方法比异步 等待更快并且比异步任务更快吗 我在每个项目方法上都使用了异步 所以主要是这是一个非常糟糕的方法 Code static int FibonacciSync int number if number 0 r
  • 如何通过 libwebsocket 发送异步数据?

    我正在将 Warmcat 的 libwebsocket C 库用于小型 Websocket 服务器 我已经启动并运行了这些示例 并且可以发送数据以响应从 websocket 接收数据 例如回显发送的反向字节 但是 我无法弄清楚如何在不使用
  • C++ 指针和对象实例化

    这有效 MyObject o o new MyObject 而这并不 MyObject o new MyObject Why 关键词new 返回一个指针 http msdn microsoft com en us library kewsb
  • std::make_pair 与浮点数组(float2,无符号整数)

    我有一个用 float2 unsigned int 对模板化的向量 例如 std vector
  • 检测反射 DLL 注入

    在过去的几年中 恶意软件 以及一些渗透测试工具 如 Metasploit 的 meterpreter 负载 已经开始使用反射 DLL 注入 PDF http www harmonysecurity com files HS P005 Ref
  • 如何在 C++ 运行时更改 QML 对象的属性?

    我想在运行时更改 QML 对象的文本 我尝试如下 但文本仍然为空 这是后端类 class BackEnd public QObject Q OBJECT Q PROPERTY QString userFieldText READ userF
  • 本地时间的内存需要释放吗?

    void log time t current time 0 tm ptm localtime current stuf 只是想确定 我是否需要在方法结束时释放 tm 指针分配的内存 不 你不应该释放它 该结构是静态分配的 检查文档 htt
  • 使用 OleDbCommand / OleDbDataAdapter 读取 CSV 文件

    我不明白为什么 但是当我使用 OleDbDataAdapter 或 OleDbCommand 读取 CSV 文件时 在这两种情况下 生成的数据结构良好 它识别文件头中的列 但行数据都是空字符串 我之前已经成功进行过多次 CSV 处理 因此我
  • 使用 dateTimePicker 在 DataGridView 中编辑日期

    我有一个DateTime我的 WinForms 中的专栏DataGridView 目前只能通过手动输入日期来编辑该字段 例如 2010 09 02 需要什么才能拥有一个DateTimePicker 或同等 用作编辑器 DataGridVie
  • 从具有相同属性的另一个对象创建对象

    我有一个 C 对象 可以说有 20 个属性 它是数据契约的一部分 我还有另一个具有类似属性的业务实体 我想从响应对象中填充该实体 除了将一个对象的每个属性分配给另一个对象的相应属性之外 还有其他方法可以做到这一点吗 是的 看看自动映射器 h
  • 在特定线程上运行工作

    我想要一个特定的线程 任务队列并在该单独的线程中处理任务 应用程序将根据用户的使用情况创建任务并将其排队到任务队列中 然后单独的线程处理任务 即使队列为空 保持线程活动并使用它来处理排队任务也至关重要 我尝试过几种实现TaskSchedul
  • C# PasswordDeriveBytes:似乎 Salt 并不重要

    可能我误解了什么 以下代码通过 CryptDeriveKey 使用两种不同的盐生成两个相等的密钥 这是控制台结果 盐1 21 3e 18 a3 9a 8b 5f gt 键 da 89 ea 3d 91 08 20 98 20 e9 dc 4
  • 检查一个数是否是完全平方数?

    我认为以下代码存在精度问题 bool isPerfectSquare long long n long long squareRootN long long sqrt n 0 5 return squareRootN squareRootN
  • 创建进程默认浏览器

    我目前正在使用 ShellExecute 打开 在用户浏览器中打开 URL 但在 Win7 和 Vista 中遇到了一些麻烦 因为该程序作为服务运行提升 我想获取线程 id 因此 ShellExecute 无法获取线程 id 因此我开始使用
  • 如何根据当前日期时间发现财政年度?

    我需要基于当前或今天的日期时间的财政年度 假设我们认为今天的日期是10 April 2011 那么我需要输出为Financial Year 2012在某些情况下 我需要以短格式显示相同的输出FY12 我想以两种方式显示 在我们的要求中 考虑

随机推荐

  • Docker 容器拒绝连接

    我已经为此挣扎了相当长一段时间 我有一个 Django 应用程序 我正在尝试将其打包到容器中 问题是 当我发布到某个端口 8001 时 主机拒绝我的连接 docker machine ip default 192 168 99 100 当我
  • Derby 数据库导出为单个文件?

    我正在制作一个小型应用程序 并且正在使用嵌入式 derby 数据库 我希望该应用程序能够将整个数据库保存到一个文件中 该文件可以存储在硬盘驱动器上 并且还可以通过在未来 关于我该怎么做的任何线索或例子 这可能会帮助你 1 资源1 http
  • wpf按钮点击事件

    In this question https stackoverflow com questions 4720446 wpf adding tabitems dynamically 4722047 4722047我问了关于添加TabItem
  • Knockout.Js 数组过滤器语法

    刚刚开始接触 javascript 和 knockout js 我找到了很多我想要实现的目标的例子 我觉得我可能忽略了一个小语法错误 我正在尝试过滤已返回的集合 这个任务 通过 ajax json 从服务器获取 我的那个工作得很好 我想做的
  • PostgreSQL 未出现 RDS 日志记录

    我按照说明进行操作here https docs aws amazon com AmazonRDS latest UserGuide USER LogAccess Concepts PostgreSQL html 我的参数组更改的摘要如下所
  • 为什么不推荐使用浏览器嗅探?

    你到处都会听到这样的说法 使用 javascript 嗅探用户代理字符串来检测浏览器版本是一件非常糟糕的事情 最新版本的 jQuery 现已弃用 browser物体代替 support 但是 如果出现仅影响 IE 而不是其他浏览器的错误或问
  • 该项目已在选定位置处于源代码管理之下

    如何将 Visual Studio 解决方案添加到 TFS 例如 我创建了一个名为 PROJECTX 的新项目 并且我有名为 PROJECTX sln 的解决方案 我选择File gt Source Control gt Add Solut
  • Matlab立体相机标定场景重建错误

    I am trying to use the Computer Vision System Toolbox to calibrate the pair of cameras below in order to be able to gene
  • Gradle:“buildTypes”无法应用于 groovy.lang.Closure [重复]

    这个问题在这里已经有答案了 改变后targetSdkVersion and compileSdkVersion到22 并改变我的buildToolsVersion到22 0 1 我不断收到以下错误 buildTypes 不能应用于 groo
  • Select2 ajax不显示结果

    我正在使用 select2 和 ajax 来查询我的数据库中特定分类下的术语 但是当我搜索时 搜索框只是挂在 搜索 上而不检索任何结果 这是我的html
  • 为什么MySQL“插入...选择...”比单独选择慢得多?

    我正在尝试将查询结果存储在临时表中以供进一步处理 create temporary table tmpTest a FLOAT b FLOAT c FLOAT engine memory insert into tmpTest select
  • 如何将 boost::bind 对象传递给函数?

    我有一个一维函数最小化器 现在我正在向它传递函数指针 然而 许多函数有多个参数 其中一些参数是固定的 我已经使用像这样的函子实现了这个 template
  • 如果数组包含重复项则进行二分查找

    Hi 如果我们使用二分搜索在以下数组中搜索 24 则搜索键的索引是多少 array 10 20 21 24 24 24 24 24 30 40 45 我对二分搜索有疑问 如果数组有重复值 它是如何工作的 任何人都可以澄清吗 您建议的数组在中
  • “java.exe”退出,代码为 2

    我将 Google Play 服务添加到我的地图项目中 但现在不断收到此错误 java exe 已退出 代码为 2 我不确定它是否与以代码 1 退出的 java exe 不同 但我已经尝试了网上的所有建议 我的堆大小是1G 我的目标版本是
  • 在 Windows 上部署后,glassfish 将您的类/项目保存在哪里?

    我在 Windows XP 上使用 Glassfish3 1 使用Netbeans部署Web服务项目后 它工作正常 但是当我去 install path glassfish 3 1 glassfish domains domain1 app
  • 通过 Maven 添加 Janino 包时出现“无效的签名文件摘要”错误

    我正在尝试通过 Maven 存储库添加对 Janino 2 7 6 的依赖项 当我尝试运行该应用程序时 出现以下错误 exec maven plugin 1 2 1 exec unpack dependencies JanineAttemp
  • C# 中左移位的奇怪行为

    在测试这段代码时 for int i 0 i lt 32 i Console WriteLine i byte MaxValue 1 lt lt i 我得到这些输出 0 256 1 512 2 1024 3 2048 4 4096 5 81
  • 按住自定义 UIButton 时更改深灰色突出显示的颜色?

    我有一个习惯UIButton这是一个云 透明的黑白 png 文件 没有关闭状态 只有一张图像 当用手指轻敲并按住它时 它会变成深灰色 我正在尝试将深灰色改成不那么压抑的颜色 该按钮在视图中公开 而不是在选项卡栏 工具栏或导航控制器中 我已经
  • 如何将自定义文件导入 APK

    众所周知 apk 文件是一个 zip 格式的存档文件 包括以下文件和文件夹 AndroidManifest xml assets 类 dex META INF res 资源 arsc 我想要的是包含一个自定义文件 即 README txt
  • 创建一个人类可读的时间戳并存储在 C++ 中的字符串中

    我想根据程序运行的时间创建带有时间戳的文件名 即 logfile 2020 04 21 18 11 10 txt logfile 2020 04 22 18 13 43 txt 我可以得到时间戳 我认为 std chrono steady