Ocaml 为什么Unix.tm_hour是实际小时数减去1?

Ocaml 为什么Unix.tm_hour是实际小时数减去1?,ocaml,Ocaml,这里的当前时间是11:05,如果我执行Unix.gmtime(Unix.time()),我会得到 {Unix.tm_sec = 53; Unix.tm_min = 4; Unix.tm_hour = 10; Unix.tm_mday = 19; Unix.tm_mon = 5; Unix.tm_year = 113; Unix.tm_wday = 3; Unix.tm_yday = 169; Unix.tm_isdst = false} Unix.tm_hour=10,但应该是11,对吗

这里的当前时间是
11:05
,如果我执行
Unix.gmtime(Unix.time())
,我会得到

{Unix.tm_sec = 53; Unix.tm_min = 4; Unix.tm_hour = 10; Unix.tm_mday = 19;
 Unix.tm_mon = 5; Unix.tm_year = 113; Unix.tm_wday = 3; Unix.tm_yday = 169;
 Unix.tm_isdst = false}
Unix.tm_hour=10,但应该是11,对吗


为什么是真正的小时减1?

这是因为现在是夏天,UNIX仍在使用GMT(所以时钟向前拨一小时)。

您应该使用UNIX.localtime()获取本地时间,Unix.gmtime返回的时间将与您的本地时间不同,具体取决于您所在的时区。

这是什么意思?我以为格林尼治标准时间会跟随英国时间?格林尼治标准时间在春天不会移动一个小时。它保持不变。在英国,我们在春季转为英国夏令时(BST),秋季转为格林尼治标准时间。简单地说,您的区域设置有Unix.gmtime,全年都保持在GMT。啊,好的。我以为英国统治世界,格林尼治标准时间也跟着;-)我们有;我们有0经度通过格林威治。不过我可以原谅你的错误;你从窗外看不到英国的夏天。据我所知,不是格林尼治标准时间,而是UTC标准时间。