我正在转换一个只能在 Windows 机器上编译的 C++ 项目,因为它使用 Microsoft C++ 库。该功能是否有任何替代方案,可_get_timezone
在 Ubuntu 12.10 机器上编译?
问问题
1897 次
2 回答
2
我想我自己计算一下,使用标准函数:
#include <time.h>
namespace time_util {
double get_gmt_offset() {
time_t now = time(NULL);
struct tm *gm = gmtime(&now);
time_t gmt = mktime(gm);
struct tm *loc = localtime(&now);
time_t local = mktime(loc);
return difftime(local, gmt);
}
}
我没有并排测试它们以确定,但这会返回我期望 _get_timezone 返回的内容(例如,对我来说,它返回 -25200,它可以工作到 UTC-7 小时)。
您可能需要/想要“摆弄”一些事情的一个地方是处理tm_isdst
- 我没有仔细观察_get_timezone
它是否考虑到这一点。
于 2013-04-09T20:11:36.043 回答
1
Linux 的替代方案_get_timezone
不是函数,而只是timezone
变量,定义在time.h
:
extern long timezone;
于 2016-06-22T11:06:49.710 回答