c++ - 使用 C++ 获取不同时区的当前时间

标签 c++ c timezone

如何获取不同时区的当前时间?例如,我需要知道新加坡的当前时间,因为我的系统设置为太平洋时间。

最佳答案

一个非常老的问题的新答案。

给定一个 C++11 或 C++14 编译器,并且 this timezone library ,新加坡本地时间是:

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

int
main()
{
    using namespace std::chrono;
    std::cout << date::make_zoned("Asia/Singapore", system_clock::now()) << '\n';
}

这只是为我输出:

2015-08-19 05:25:05.453824 SGT

这给出了当前使用的本地日期、时间和缩写。它基于 <chrono>图书馆和 IANA timezone database .

std::chrono::system_clock::now()返回 UTC 时区的时间戳。该程序定位“亚洲/新加坡”的时区信息,并将 UTC 时间戳转换为代表本地时间和该位置当前时区的一对。

上述程序与计算机的当前时区无关。

C++20 更新

在 C++20 中,您现在可以执行此操作(一旦您的供应商发布了它):

#include <chrono>
#include <iostream>

int
main()
{
    using namespace std::chrono;
    std::cout << zoned_time{"Asia/Singapore", system_clock::now()} << '\n';
}

输出:

2015-08-19 05:25:05.453824 SGT

关于c++ - 使用 C++ 获取不同时区的当前时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3347831/

相关文章:

c++ - ListView 按错误列排序

date - Dart : parse date timezone gives UnimplementedError

Python 如何检查时间是否为午夜,如果为真则不显示时间

javascript - 从区域时间获取 utc 时间 moment.js

c++ - 当通过 C++ 在控制台中接收来自用户的信息时,如何将 "Enter"保留在当前行中?

c++ - 如何在 C++ 项目中使用 C gnutls API

c++ - 向单链表添加值

c - 将一行中的每个单词打印在单独的行上

我们可以在 BG96 LwM2M 实现中添加自定义对象吗?

c - 尝试使用文件 i/o 读写来查找两个文件不同的字节位置