在 C++ 中获取当前时间和日期

Google Translate Icon

这篇文章将讨论如何在 C++ 中获取当前时间和日期。

1.使用 std::chrono

从 C++11 开始,在 C++ 中获取当前时间和日期的标准解决方案是使用 chrono 库。我们可以得到当前时间 std::chrono::system_clock::now() 来自 <chrono.h> 标头,并将其转换为 std::time_t 类型(自纪元以来的时间)。然后,转换 std::time_t 到本地日历时间 std::ctimeWww Mmm dd hh:mm:ss yyyy 格式,如下图:

下载  运行代码

输出(会有所不同):

Current Time and Date: Tue Feb 08 18:40:13 2018

 
如果您只需要在 C++ 中测量经过的时间,请执行以下操作。

下载  运行代码

输出(会有所不同):

Elapsed Time: 0.060156 sec

 
从 C++20 开始,我们也可以使用 std::chrono::zoned_time 用时区表示日期和时间。

下载代码

2.使用 std::time

这个想法是获取自纪元以来经过的秒数 std::time_t 值,然后将其转换为 std::tm 实例与 std::localtime.一个 std::tm 对象保存一个日历日期和时间,分解成它的组成部分(秒、分、小时、日、月、年等)。

下面的代码示例演示了它的用法。请注意,此解决方案需要 <ctime> 标题。

下载  运行代码

输出(会有所不同):

Current Date: 8/2/2018

 
我们可以进一步将日期和时间信息从 std::tm 对象为空终止的多字节字符,根据指定的格式字符串使用 strftime() 功能。例如,以下代码将当前日期和时间返回为 std::string 在格式 MM-DD-YYYY HH:mm:ss.

下载  运行代码

输出(会有所不同):

Current Time and Date: 02-08-2018 18:42:41

3.使用 Boost.Date_Time

另一种选择是使用 日期时间函数 由 boost 库提供。 boost库提供了几种时间系统。以下解决方案使用 boost::posix_time::microsec_clock::universal_time 从标题 <boost/date_time/posix_time/posix_time> – 返回 UTC 时间。

下载代码

输出(会有所不同):

Current Time and Date: 2018-Feb-08 18:42:41.804879

这就是在 C++ 中获取当前时间和日期的全部内容。

评价这篇文章

平均评分 4.7/5。票数: 46

暂时没有票!成为第一个给这篇文章评分的人。

很抱歉这篇文章对您没有用处!

告诉我们如何改进这篇文章?




谢谢阅读。

请使用我们的 在线编译器 使用 C、C++、Java、Python、JavaScript、C#、PHP 和许多更流行的编程语言在评论中发布代码。

像我们?将我们推荐给您的朋友,帮助我们成长。快乐编码 :)



订阅
通知
guest
2 注释
投票最多
最新 最老的
内联反馈
查看所有评论
请勿点击此链接,否则您将被禁止访问该网站!