我得到的回复是一个纪元时间格式的
start_time = 1234566
end_time = 1234578
我想转换的epoch秒在MySQL格式时间,以便我可以存储在我的MySQL数据库的差异。
我试着:
>>> import time
>>> time.gmtime(123456)
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=2, tm_hour=10, tm_min=17, tm_sec=36, tm_wday=4, tm_yday=2, tm_isdst=0)
以上的结果并不是我所期望的。我想要的是
2012-09-12 21:00:00
请建议我怎样才能做到这一点?
同时,
为什么我得到TypeError:一个浮动是必需的
>>> getbbb_class.end_time = 1347516459425
>>> mend = time.gmtime(getbbb_class.end_time).tm_hour
Traceback (most recent call last):
...
TypeError: a float is required
首先是来自man gmtime的纪元信息
The ctime(), gmtime() and localtime() functions all take an argument of data type time_t which represents calendar time. When inter-
preted as an absolute time value, it represents the number of seconds elapsed since 00:00:00 on January 1, 1970, Coordinated Universal
Time (UTC).
要理解时代应该是怎样的。
>>> time.time()
1347517171.6514659
>>> time.gmtime(time.time())
(2012, 9, 13, 6, 19, 34, 3, 257, 0)
只要确保传递给time.gmtime()的参数是整数。
共享答案以明确区分UTC和本地时间转换。在使用以下方法之前,在顶部使用import datetime。
转换为本地机器时区的datetime
datetime.datetime.fromtimestamp(1347517370)
转换为UTC时区的datetime
datetime.datetime.utcfromtimestamp(1347517370)
对于上述两种方法,如果希望返回格式化的日期字符串,请使用以下代码块
datetime.datetime.fromtimestamp(1347517370).strftime('%Y-%m-%d %H:%M:%S')
datetime.datetime.utcfromtimestamp(1347517370).strftime('%Y-%m-%d %H:%M:%S')