将时间戳转换为日期时间

时间:2021-06-24 10:26:11

标签: python datetime timestamp

from pandas.tseries.offsets import BDay
from datetime import datetime

today = datetime.today()
todayminus1 = (today - BDay(1))
print("type(todayminus1) =", type(todayminus1))
todayminus1 = datetime.fromtimestamp(todayminus1).strftime('%d-%m-%y')

print("todayminus1 =", todayminus1)

error: TypeError: an integer is required (got type Timestamp)

我无法解决这个问题。有什么想法吗?

尝试转换为日期时间时似乎出错

1 个答案:

答案 0 :(得分:0)

来自 datetime.fromtimestamp()

的文档 <块引用>

classmethod datetime.fromtimestamp(timestamp, tz=None) 返回 POSIX时间戳对应的本地日期和时间,如 由 time.time() 返回。如果可选参数 tz 是否为 None 指定,时间戳被转换为平台的本地日期和 时间,并且返回的日期时间对象是幼稚的。

您需要使用 todayminus1.timestamp()

将时间戳转换为 UNIX 时间
from pandas.tseries.offsets import BDay
from datetime import datetime

today = datetime.today()
todayminus1 = (today - BDay(1))
print("type(todayminus1) =", type(todayminus1))
todayminus1 = datetime.fromtimestamp(todayminus1.timestamp()).strftime('%d-%m-%y')

print("todayminus1 =", todayminus1)

输出:

type(todayminus1) = <class 'pandas._libs.tslibs.timestamps.Timestamp'>
todayminus1 = 23-06-21

另外,您不应该在大熊猫和日期时间之间混用。因此,您还可以在行中添加 .to_pydatetime()

todayminus1 = (today - BDay(1)).to_pydatetime()

将所有内容保留为 datetime