Windows Server上的std::zoned_time不工作



我遇到了一个std::chrono::zoned_time{}的奇怪问题。甚至奇怪的是,它在我的机器上工作,而不是我为之构建这个应用程序的远程服务器。

这个简单的代码开关我在那里找到了微软学习

#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
zoned_time zt("Antarctica/Casey", sys_days{2021y/September/15d}+16h+45min);
sys_info si = zt.get_info();
std::cout << si;
return 0;
}

写在开发机器上

begin: 2020-10-03 16:01:00, end: 32767-12-31 23:59:59, offset: 39600s, save: 0min, abbrev: GMT+11

只是死在部署服务器上。

我真的不明白这里出了什么问题。

开发机器为Windows 10 Pro,版本21H2,版本19044.2130部署服务器是Windows server 2016版本1809,构建17763.3532

我不知道,但我怀疑您的部署服务器没有附带ICU库,而ICU库是C++20这一部分在Windows平台上工作所必需的。

从这里:

虽然我们目前的实现依赖于最新操作系统版本中ICU DLL的可用性,但我们计划重新审视这个问题,并研究为旧操作系统实现回退。

最新更新