将时间转换为可打印或本地时间格式

时间:2016-04-12 01:07:41

标签: python

在我的python代码中,我得到了一些开始和结束时间:

end = int(time.time())
start = end - 1800

现在,开始和结束变量保存的值如1460420758和1460422558。

我试图以有意义的格式转换它,如:

Mon Apr 11 17:50:25 PDT 2016

但我无法这样做,我试过了:

time.strftime("%a %b %d %H:%M:%S %Y", time.gmtime(start))

给我

Tue Apr 12 00:25:58 2016

但不仅时区而且H:M:S错了

由于日期返回以下信息:

$ date
Mon Apr 11 18:06:27 PDT 2016

如何纠正?

1 个答案:

答案 0 :(得分:0)

这个涉及利用strftime模块将日期时间用于您想要的格式。

重要的是,为了做到这一点,你必须获得的时间信息必须是UTC。否则,你注定了D:

我正在使用timedelta来“添加”时间。它也会增加日期。我仍然建议使用上面共享的模块来处理时区。

import time

# import datetime so you could play with time
import datetime

print int(time.time())
date = time.gmtime(1460420758)

# Transform time into datetime
new_date = datetime.datetime(*date[:6])

new_date = new_date + datetime.timedelta(hours=8)

# Utilize datetime's strftime and manipulate it to what you want
print new_date.strftime('%a %b %d %X PDT %Y')