cal*_*pto 150 python time datetime
你如何做反向gmtime(),你把时间+日期和获得秒数?
我有类似的字符串'Jul 9, 2009 @ 20:02:58 UTC',我想要回到2009年7月9日之间的秒数.
我已经尝试time.strftime但我不知道如何正确使用它,或者它是否是正确的命令使用.
nar*_*ren 568
使用时间模块:
epoch_time = int(time.time())
Run Code Online (Sandbox Code Playgroud)
nmi*_*els 114
你想要的time.gmtime().
>>> calendar.timegm(time.gmtime())
1293581619.0
Run Code Online (Sandbox Code Playgroud)
你可以将你的字符串变成一个时间元组calendar.timegm(),它返回一个你可以传递给的时间元组time.strptime():
>>> import calendar
>>> import time
>>> calendar.timegm(time.strptime('Jul 9, 2009 @ 20:02:58 UTC', '%b %d, %Y @ %H:%M:%S UTC'))
1247169778
Run Code Online (Sandbox Code Playgroud)
有关日历模块的更多信息点击这里
请注意,time.gmtime将时间戳映射0到1970-1-1 00:00:00.
In [61]: import time
In [63]: time.gmtime(0)
Out[63]: time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
Run Code Online (Sandbox Code Playgroud)
time.mktime(time.gmtime(0)) 为您提供一个时间戳,该时间戳取决于您的语言环境,通常可能不是0.
In [64]: time.mktime(time.gmtime(0))
Out[64]: 18000.0
Run Code Online (Sandbox Code Playgroud)
倒数time.gmtime是calendar.timegm:
In [62]: import calendar
In [65]: calendar.timegm(time.gmtime(0))
Out[65]: 0
Run Code Online (Sandbox Code Playgroud)
ep = datetime.datetime(1970,1,1,0,0,0)
x = (datetime.datetime.utcnow()- ep).total_seconds()
Run Code Online (Sandbox Code Playgroud)
这应该是不同的int(time.time()),但使用类似的东西是安全的x % (60*60*24)
与时间模块不同,datetime模块不支持闰秒.
t = datetime.strptime('Jul 9, 2009 @ 20:02:58 UTC',"%b %d, %Y @ %H:%M:%S %Z")
Run Code Online (Sandbox Code Playgroud)