Does Python's time.time() return a timestamp in UTC?
我需要在UTC时间生成一个UNIX时间戳,所以我使用
我还需要做其他任何事情,还是自动生成UTC时间戳?
从技术上讲,
C标准(不是免费提供)并没有说明这是否是GMT,POSIX标准也没有。它只是说:
The
time() function shall return the value of time in seconds since the Epoch.
...没有说任何关于时区的事情,除了你可以将它传递给
所以,这是特定于平台的。平台可以返回
话虽这么说,它通常是GMT - 或者更确切地说,是UTC(Windows),或UTC-except-for-leap-seconds(大多数其他平台)。例如,FreeBSD说:
The
time() function returns the value of time in seconds since 0 hours, 0 minutes, 0 seconds, January 1, 1970, Coordinated Universal Time, without including leap seconds.
OS X和大多数其他* BSD具有相同的联机帮助页,Windows和linux / glibc也专门返回UTC(有或没有闰秒)等。
此外,Python文档说:
To find out what the epoch is, look at
gmtime(0) .
将其与
转换为时间标准使用:
-
time.localtime([secs]) - 操作系统定义的本地时间 -
time.gmtime([secs]) - UTC
它们都返回
1 2 3 4 5 | >>> t = time.time() >>> time.localtime(t) time.struct_time(tm_year=2013, tm_mon=5, tm_mday=15, tm_hour=2, tm_min=41, tm_sec=49, tm_wday=2, tm_yday=135, tm_isdst=1) >>> time.gmtime(t) time.struct_time(tm_year=2013, tm_mon=5, tm_mday=15, tm_hour=0, tm_min=41, tm_sec=49, tm_wday=2, tm_yday=135, tm_isdst=0) |