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

  • 回答 (10)
  • 关注 (0)
  • 查看 (183)

是否有支持跨平台的C++ 方法来获取当前日期和时间?

Ne_biubiubiuNe_biubiubiu提问于
小贝回答于

这个问题没有指定在哪个时区。有两种合理的可能性:

  1. UTC 时间
  2. 计算机本地时区

对于1,您可以使用此日期库和以下代码

#include "date.h"
#include <iostream>

int
main()
{
    using namespace date;
    using namespace std::chrono;
    std::cout << system_clock::now() << '\n';
}

输出结果是

2015-08-18 22:08:18.944211

实际上,日期库只是添加了一个流运算符。std::chrono::system_clock::time_point它还增加了许多其他好用的功能,但在这个简单的程序中没有使用。

如果您需要2(当地时间),这有一个时区库日期库,这两个库都是跨平台和开源的,这里假设编译器支持C++11或C++14。

#include "tz.h"
#include <iostream>

int
main()
{
    using namespace date;
    using namespace std::chrono;
    auto local = make_zoned(current_zone(), system_clock::now());
    std::cout << local << '\n';
}

输出

2015-08-18 18:08:18.944211 EDT

make_zoned 的返回结果类型是 date::zoned_time ,这是一对 date::time_zone std::chrono::system_clock::time_point他们表示本地时间,但是也可以表示 UTC 时间,这取决于你查询的方式。

有了上面的输出,您可以看到我的计算机目前处于一个UTC偏移量为 -4h,缩写为 EDT的时区。

如果需要其他时区,也可以完成。例如,要在澳大利亚悉尼找到当前时间,只需更改变量的结构。local改为:

auto local = make_zoned("Australia/Sydney", system_clock::now());

输出变为

2015-08-19 08:08:18.944211 AEST

回答过的其他问题

如何借助云服务降低金融欺诈风险?

借助反欺诈服务(AntiFraud)主要应用于银行、证券、保险、P2P 等金融行业客户,通过腾讯的智慧风控能力,可以准确识别恶意用户与行为,帮助解决在支付、借贷、理财、风控等业务环节遇到的欺诈威胁,降低企业的损失。 借助反欺诈服务有4个功能:包括 贷前检测,贷后监控,黑产情报,风...... 展开详请

目前国内的语音识别技术达到了什么水准?还存在哪些问题?

目前语音识别技术已经发展得很好了,最高的准确率差不多能够达到95%。 应用场景也很多,比如说: 1、语音输入法:为用户节省输入时间、提升输入体验。 2、语音消息转写:将用户的语音信息转成文字信息,提升用户阅读效率。 3、智慧会场:将会议、庭审、采访等场景的音频信息转换为文字,降低...... 展开详请

云计算实现中虚拟化技术是如何运用的?

通过将硬件的虚拟化(比如:一台母机虚拟成多台vps),虚拟化技术正好实现了人们降低了云计算开支与部署成本,使云计算的硬件资源得到更加高效的利用的需求。

在Python中“三个点”是什么意思,当索引看起来像一个数字时?

Python中的常规赋值只是在本地或全局变量字典中更改引用,而不是修改现有变量。这意味着简单地赋值给x将不会将值放入数组的元素中,而是将x从数组元素引用切换为对您分配的值的引用。要实际修改数组的元素,x应该用省略号索引。 该部分包含你的代码示例。 所以用我的话说,就地x...... 展开详请

jQuery.trigger('click')不起作用

这是JQuery行为。我不知道它为什么会这样工作,它只触发链接上的onclick函数。 试着: jQuery(document).ready(function() { jQuery('#foo').on('click', function() { jQu...... 展开详请

Cron Expression用于在不同时间以不同的间隔运行作业

时间(或强度)是不同的,所以你需要不同的表达方式。

所以类似于:* / 5 4-7,19-22 * * * your / command * / 30 0-3,8-18,23 * * * your / command

关于作者

所属标签

扫码关注云+社区