2016-07-29 148 views
0

我在C++/c中检索GMT时间。但它返回不正确的小时。例如,现在小时应该是早上9点,但struct tm对象返回上午3点。任何想法为什么或我做错了什么?gmtime返回不正确的小时

time_t rawtime; 
struct tm* ptm; 
time(&rawtime); 
ptm = gmtime(&rawtime); 

std::stringstream ss; 
ss << ptm->tm_hour; // outputs "3" when it should be "9" 

gmtime应该总是返回UTC/GMT时间,不管用户在哪里,或者他们有什么时区设置权限?

+0

无法复制:https://ideone.com/K9116G – 2501

+0

我试过了,我认为它看起来不错,[ideone](https://ideone.com/uJPX0k) – GAVD

+0

有些用户习惯于将自己的计算机保存在utc中,而是将时间设置为当地时间。你能否证实你是否在认为你是自己的? – Fabio

回答

1

gmtime应该总是返回UTC/GMT时间,不管用户在哪里,或者他们有什么时区设置权限?

是的,只要他们的电脑时钟设置正确。

显然你的不是。