我有一个Python datetime对象,我想转换为unix时间,或自1970年代以来的秒/毫秒.
我该怎么做呢?
我必须在未来5分钟创建一个"Expires"值,但我必须以UNIX Timestamp格式提供它.到目前为止,我有这个,但它似乎是一个黑客.
def expires():
'''return a UNIX style timestamp representing 5 minutes from now'''
epoch = datetime.datetime(1970, 1, 1)
seconds_in_a_day = 60 * 60 * 24
five_minutes = datetime.timedelta(seconds=5*60)
five_minutes_from_now = datetime.datetime.now() + five_minutes
since_epoch = five_minutes_from_now - epoch
return since_epoch.days * seconds_in_a_day + since_epoch.seconds
Run Code Online (Sandbox Code Playgroud)
是否有为我进行时间戳转换的模块或函数?
我正在处理Python中的日期,我需要将它们转换为UTC时间戳,以便在Javascript中使用.以下代码不起作用:
>>> d = datetime.date(2011,01,01)
>>> datetime.datetime.utcfromtimestamp(time.mktime(d.timetuple()))
datetime.datetime(2010, 12, 31, 23, 0)
Run Code Online (Sandbox Code Playgroud)
将日期对象首先转换为datetime也无济于事.我试过这个链接的例子,但是:
from pytz import utc, timezone
from datetime import datetime
from time import mktime
input_date = datetime(year=2011, month=1, day=15)
Run Code Online (Sandbox Code Playgroud)
现在要么:
mktime(utc.localize(input_date).utctimetuple())
Run Code Online (Sandbox Code Playgroud)
要么
mktime(timezone('US/Eastern').localize(input_date).utctimetuple())
Run Code Online (Sandbox Code Playgroud)
确实有效.
所以一般的问题:如何根据UTC获得自纪元以来转换为秒的日期?
Python提供不同的套餐(datetime,time,calendar),可以看出这里为了应对时间.通过使用以下内容来获取当前的GMT时间,我犯了一个大错误time.mktime(datetime.datetime.utcnow().timetuple())
在Unix时间戳中获取当前GMT时间的简单方法是什么?