Python创建未来五分钟的Unix时间戳

305

我需要创建一个“过期时间”,使其在未来5分钟内失效,但是必须以UNIX时间戳格式提供。到目前为止,我已经有了下面的代码,但它似乎很不优雅。

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

是否有一个模块或函数可以为我执行时间戳转换?


7
我建议更改这个问题的主题。这个问题很好,但它不是关于将日期时间转换为Unix时间戳的问题。它是关于如何获取未来5分钟的Unix时间戳的问题。 - D. A.
我不同意,@D.A. 这个问题本质上是在说“我需要做X和Y。这是我现在拥有的。有没有更好的方法来做Y?”也许有更好的方法来做X,但标题和正文明确地询问了Y。 - Rob Kennedy
6
我完全同意您在这个问题上的看法,我认为这是一个好问题,并且有一个好答案。问题是,“Python datetime to Unix timestamp”并没有反映出问题或答案。我是通过搜索一种转换方式才找到了这篇文章,但由于误导性的主题行,浪费了我的时间。我建议改成:“Python,未来5分钟的UNIX时间戳”。 - D. A.
3
@JimmyKane - 在这里可以找到一份非常全面的答案,讲述如何从日期时间中获取时间戳:https://dev59.com/hWoy5IYBdhLWcg3wF6ML#8778548 - Tim Tisdall
@TimTisdall 是的,因为标题已更改,所以它没有意义。 - Jimmy Kane
12个回答

1
请注意,使用timedelta.total_seconds()的解决方案适用于Python-2.7+。 对于Python的较低版本,请使用calendar.timegm(future.utctimetuple())

0

使用内置的时间戳函数如何?这段代码适用于不同的时间(而不仅仅是当前时间)。

import datetime

a = "2017-01-01 14:30:00"
b = datetime.datetime.strptime(a, '%Y-%m-%d %H:%M:%S')
c = int(b.timestamp()/60.0)
alarm_time = c + 5

运行环境   操作系统:Ubuntu 16.04   Python 3.6


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接