C ';本地时间';api没有';不要考虑本地时区,而是使用太平洋时区。

C ';本地时间';api没有';不要考虑本地时区,而是使用太平洋时区。,c,localtime,crt,C,Localtime,Crt,本文件说明如下: 如果用户首先设置全局环境变量TZ,则localtime会更正本地时区。设置TZ时,还会自动设置其他三个环境变量(“时区”、“日光”和“tzname”)。如果未设置TZ变量,localtime将尝试使用控制面板中的日期/时间应用程序中指定的时区信息如果无法获取此信息,则默认使用表示太平洋时区的PST8PDT。 为什么localtime方法不能获取服务器的时区信息 我有一个本机应用程序在Windows 2016服务器上作为服务运行。时区集为复活节时区。但是本地时间使用太平洋时区。您

本文件说明如下:

如果用户首先设置全局环境变量TZ,则localtime会更正本地时区。设置TZ时,还会自动设置其他三个环境变量(“时区”、“日光”和“tzname”)。如果未设置TZ变量,localtime将尝试使用控制面板中的日期/时间应用程序中指定的时区信息如果无法获取此信息,则默认使用表示太平洋时区的PST8PDT。

为什么localtime方法不能获取服务器的时区信息


我有一个本机应用程序在Windows 2016服务器上作为服务运行。时区集为复活节时区。但是本地时间使用太平洋时区。

您使用美国/东部时区吗?我怀疑您必须进入它并调试它,以找出原因。奇怪的是,我在VS2017安装的CRT源代码中找不到localtime:-/@LethalProgrammer-是的,美国/东部时间zone@Rup--2017文档具有本地时间参考如果安装Windows 10 SDK,您将在C:\Program Files(x86)\Windows Kits\10\source\10.0.17134.0\ucrt\time\tzset.cpp(或其他版本组件)中找到源代码tzset来自系统锁定。这将调用并获取
tz_info.Bias
tz_info.StandardBias
。所以我猜GetTimeZoneInformation调用失败了,您可以单独测试并检查GetLastError。