Dan*_*den 295 python datetime unix-timestamp
我必须在未来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)
是否有为我进行时间戳转换的模块或函数?
Cat*_*lus 347
另一种方法是使用calendar.timegm
:
future = datetime.datetime.utcnow() + datetime.timedelta(minutes=5)
return calendar.timegm(future.timetuple())
Run Code Online (Sandbox Code Playgroud)
它也比%s
flag 更便携strftime
(在Windows上不起作用).
Tim*_*all 153
现在在Python> = 3.3中,您可以调用timestamp()方法将时间戳作为浮点数.
import datetime
current_time = datetime.datetime.now(datetime.timezone.utc)
unix_timestamp = current_time.timestamp() # works if Python >= 3.3
unix_timestamp_plus_5_min = unix_timestamp + (5 * 60) # 5 min * 60 seconds
Run Code Online (Sandbox Code Playgroud)
Dan*_*den 137
刚发现这个,它甚至更短.
import time
def expires():
'''return a UNIX style timestamp representing 5 minutes from now'''
return int(time.time()+300)
Run Code Online (Sandbox Code Playgroud)
Ali*_*Ali 57
这就是你需要的:
import time
import datetime
n = datetime.datetime.now()
unix_time = time.mktime(n.timetuple())
Run Code Online (Sandbox Code Playgroud)
mip*_*adi 47
您可以使用格式字符串datetime.strftime
来使用Epoch表单获取时间%s
:
def expires():
future = datetime.datetime.now() + datetime.timedelta(seconds=5*60)
return int(future.strftime("%s"))
Run Code Online (Sandbox Code Playgroud)
jfs*_*jfs 11
这是一个不太破碎datetime
的解决方案,可以从datetime对象转换为posix时间戳:
future = datetime.datetime.utcnow() + datetime.timedelta(minutes=5)
return (future - datetime.datetime(1970, 1, 1)).total_seconds()
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅在Python中将datetime.date转换为UTC时间戳.
def in_unix(input):
start = datetime.datetime(year=1970,month=1,day=1)
diff = input - start
return diff.total_seconds()
Run Code Online (Sandbox Code Playgroud)