将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?