有人知道一种可靠的方法来获取截至“今天”的当前活动时区列表,并考虑夏令时吗?
我找到了 IANA 时区数据库等资源以及 https://timezonedb.com/ 和 https://24timezones.com/time-zones 等网站,它们将为我提供时区及其相关偏移量的列表,但到目前为止,他们都没有给我一个可靠的列表,说明当前和准确的时区和相关偏移量,他们都将下一步的确定留给我,而我的技术知识无法应对这一挑战.
对我来说理想的资源是 IANA 格式的时区表、时区缩写和当前活动偏移量:
时区 | 缩写 | 偏移 |
---|---|---|
澳大利亚/布里斯班 | 澳大利亚东部时间 | UTC+10 |
美国/纽约 | 东部时间 | UTC-4 |
等等。
有人熟悉类似的事情吗?
如果您有可用的 C++20,您可以编写一个非常短的程序来生成这样一个表的数据:
#include <chrono>
#include <format>
#include <iostream>
int
main()
{
using namespace std;
using namespace chrono;
auto now = system_clock::now();
for (auto const& tz : get_tzdb().zones)
{
auto info = tz.get_info(now);
cout << tz.name() << "\t" << format("{:%Z%tUTC%Ez\n}", zoned_time{&tz, now});
}
}
这不会为您提供整洁的 html 表格,但它会为您提供所有数据。