我遇到了一个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的可用性,但我们计划重新审视这个问题,并研究为旧操作系统实现回退。