Python Создает метку времени Unix пять минут в будущем

Я должен создать, "Истекает", оценивают 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

Существует ли модуль или функция, которая делает преобразование метки времени для меня?

295
задан Doug Harris 18 February 2014 в 08:42
поделиться

3 ответа

Только что нашел это, и оно еще короче.

import time
def expires():
    '''return a UNIX style timestamp representing 5 minutes from now'''
    return int(time.time()+300)
137
ответ дан 23 November 2019 в 01:34
поделиться

Вы можете использовать datetime.strftime , чтобы получить время в форме эпохи, используя строку формата % s :

def expires():
    future = datetime.datetime.now() + datetime.timedelta(seconds=5*60)
    return int(future.strftime("%s"))
47
ответ дан 23 November 2019 в 01:34
поделиться

Другой способ - использовать calendar.timegm:

future = datetime.datetime.utcnow() + datetime.timedelta(minutes=5)
return calendar.timegm(future.timetuple())

Он также более портативен, чем %s флаг к strftime (который не работает в Windows).

347
ответ дан 23 November 2019 в 01:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: