将unix时间戳字符串转换为可读的日期
我有一个字符串表示Python中的unix时间戳(即“1284101485”),我想将其转换为可读的日期。 当我使用time.strftime
,我得到一个TypeError
:
>>>import time
>>>print time.strftime("%B %d %Y", "1284101485")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: argument must be 9-item sequence, not str
使用datetime
模块:
import datetime
print(
datetime.datetime.fromtimestamp(
int("1284101485")
).strftime('%Y-%m-%d %H:%M:%S')
)
在这段代码中, datetime.datetime
看起来很奇怪,但是第一个datetime
是模块名,第二个是类名。 所以datetime.datetime.fromtimestamp()
是来自datetime
模块的datetime
类的fromtimestamp()
方法。
>>> from datetime import datetime
>>> datetime.fromtimestamp(1172969203.1)
datetime.datetime(2007, 3, 4, 0, 46, 43, 100000)
取自http://seehuhn.de/pages/pdate
最受投票的答案表明使用时间戳,因为它使用本地时区,所以这是容易出错的。 为了避免问题,更好的方法是使用UTC:
datetime.datetime.utcfromtimestamp(posix_time).strftime('%Y-%m-%dT%H:%M:%SZ')
posix_time是你想要转换的Posix时代
链接地址: http://www.djcxy.com/p/25195.html上一篇: Converting unix timestamp string to readable date
下一篇: How can I convert a Unix timestamp to DateTime and vice versa?