Я должен создать, "Истекает", оценивают 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
Существует ли модуль или функция, которая делает преобразование метки времени для меня?
Только что нашел это, и оно еще короче.
import time
def expires():
'''return a UNIX style timestamp representing 5 minutes from now'''
return int(time.time()+300)
Вы можете использовать datetime.strftime
, чтобы получить время в форме эпохи, используя строку формата % s
:
def expires():
future = datetime.datetime.now() + datetime.timedelta(seconds=5*60)
return int(future.strftime("%s"))
Другой способ - использовать calendar.timegm
:
future = datetime.datetime.utcnow() + datetime.timedelta(minutes=5)
return calendar.timegm(future.timetuple())
Он также более портативен, чем %s
флаг к strftime
(который не работает в Windows).