如何反转gmtime(),在其中放入时间+日期并获得秒数?
我有像' July 9, 2009 @ 20:02:58 UTC'这样的字符串,我想要得到纪元和2009年7月9日之间的秒数。
我试过时间。strftime但是我不知道如何正确地使用它,或者它是否是使用的正确命令。
如何反转gmtime(),在其中放入时间+日期并获得秒数?
我有像' July 9, 2009 @ 20:02:58 UTC'这样的字符串,我想要得到纪元和2009年7月9日之间的秒数。
我试过时间。strftime但是我不知道如何正确地使用它,或者它是否是使用的正确命令。
当前回答
如果你来这里是因为一个搜索引擎告诉你如何获得Unix时间戳,那么停止阅读这个答案。向上滚动一个。
如果你想反转time.gmtime(),你需要使用calendar.timegm()。
>>> calendar.timegm(time.gmtime())
1293581619.0
你可以使用time.strptime()将你的字符串转换为时间元组,它返回一个时间元组,你可以传递给calendar.timegm():
>>> import calendar
>>> import time
>>> calendar.timegm(time.strptime('Jul 9, 2009 @ 20:02:58 UTC', '%b %d, %Y @ %H:%M:%S UTC'))
1247169778
更多关于日历模块的信息
其他回答
使用时间模块:
import time
epoch_time = int(time.time())
如果你来这里是因为一个搜索引擎告诉你如何获得Unix时间戳,那么停止阅读这个答案。向上滚动一个。
如果你想反转time.gmtime(),你需要使用calendar.timegm()。
>>> calendar.timegm(time.gmtime())
1293581619.0
你可以使用time.strptime()将你的字符串转换为时间元组,它返回一个时间元组,你可以传递给calendar.timegm():
>>> import calendar
>>> import time
>>> calendar.timegm(time.strptime('Jul 9, 2009 @ 20:02:58 UTC', '%b %d, %Y @ %H:%M:%S UTC'))
1247169778
更多关于日历模块的信息
ep = datetime.datetime(1970,1,1,0,0,0)
x = (datetime.datetime.utcnow()- ep).total_seconds()
这应该与int(time.time())不同,但使用类似x %(60*60*24)的值是安全的。
datetime -基本日期和时间类型:
与time模块不同,datetime模块不支持闰秒。
注意时间。Gmtime将时间戳0映射到1970-1-1 00:00:00。
In [61]: import time
In [63]: time.gmtime(0)
Out[63]: time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
Time.mktime (time.gmtime(0))提供了一个时间戳,偏移量取决于您的语言环境,通常可能不是0。
In [64]: time.mktime(time.gmtime(0))
Out[64]: 18000.0
时间的倒数。Gmtime是calendar.timegm:
In [62]: import calendar
In [65]: calendar.timegm(time.gmtime(0))
Out[65]: 0
t = datetime.strptime('Jul 9, 2009 @ 20:02:58 UTC',"%b %d, %Y @ %H:%M:%S %Z")