我必须在未来5分钟内创建一个“Expires”值,但是我必须以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
是否有一个模块或函数为我进行时间戳转换?
以下是基于上面的答案(加上对毫秒的修正),并在使用时区时模拟Python 3 3.3之前的datetime.timestamp()。
def datetime_timestamp(datetime):
'''
Equivalent to datetime.timestamp() for pre-3.3
'''
try:
return datetime.timestamp()
except AttributeError:
utc_datetime = datetime.astimezone(utc)
return timegm(utc_datetime.timetuple()) + utc_datetime.microsecond / 1e6
为了严格地回答问题,你需要:
datetime_timestamp(my_datetime) + 5 * 60
Datetime_timestamp是simple-date的一部分。但如果你正在使用这个包,你可能会输入:
SimpleDate(my_datetime).timestamp + 5 * 60
它为my_datetime处理更多的格式/类型。
以下是基于上面的答案(加上对毫秒的修正),并在使用时区时模拟Python 3 3.3之前的datetime.timestamp()。
def datetime_timestamp(datetime):
'''
Equivalent to datetime.timestamp() for pre-3.3
'''
try:
return datetime.timestamp()
except AttributeError:
utc_datetime = datetime.astimezone(utc)
return timegm(utc_datetime.timetuple()) + utc_datetime.microsecond / 1e6
为了严格地回答问题,你需要:
datetime_timestamp(my_datetime) + 5 * 60
Datetime_timestamp是simple-date的一部分。但如果你正在使用这个包,你可能会输入:
SimpleDate(my_datetime).timestamp + 5 * 60
它为my_datetime处理更多的格式/类型。