【发布时间】:2011-12-22 06:31:21
【问题描述】:
根据http://www.cplusplus.com/reference/clibrary/ctime/time_t/ time_t 是自 1970 年 1 月 1 日午夜 UTC 以来的秒数。因此,如果我按照此处记录的http://www.cplusplus.com/reference/clibrary/ctime/time/ 调用时间函数,返回的秒数是从纪元到现在的 UTC,还是按照它运行的主机的标准时区调整的时间?
而且,更重要的是,为什么没有记录?
【问题讨论】:
-
将所有时间存储为 UTC 将节省大量精力。仅在您想显示时转换为本地时间。
-
在 windows 下运行以下程序: // timetest.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { time_t now;现在的时间); printf("自纪元 %ld 以来的秒数", now);立即返回;并且它返回了一个我的时区设置为东部的时间。然后我关闭了 Visual C++,将我的时区更改为太平洋,重新启动 C++ 并重新运行程序,它比以前多返回 50 秒,大约需要多长时间才能运行该程序。所以windows下的VC++库似乎返回UTC。
-
当然,洛基。是什么让你相信我没有这样做?
-
@Thom:在我看来记录在案msdn.microsoft.com/en-us/library/1f4c8f33(v=VS.100).aspx。 www.cplusplus.com 留下了很多信息,其中一些是完全错误的。 (尤其是现在 C++11 出来了)
-
澄清一下:C 和 C++ 标准都没有定义分辨率或时代,但 POSIX 有。
标签: c++ visual-c++