python-3.x 为什么使用时间戳时会出现错误?

68bkxrlz  于 2023-03-31  发布在  Python
关注(0)|答案(1)|浏览(132)

下面的代码片段生成了一个错误,我不知道是什么错误,也不知道如何纠正它:

import pandas as pd
from pandas import Timestamp
import datetime

dt = datetime.datetime.fromtimestamp(Timestamp("1900-01-01"))

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
~\AppData\Local\Temp\ipykernel_13616\1174166552.py in <module>
      3 import datetime
      4 
----> 5 dt = datetime.datetime.fromtimestamp(pd.Timestamp("1900-01-01"))

TypeError: an integer is required (got type Timestamp)

an integer is required是什么意思
你能指出我不明白使用时间戳的地方吗?

dsekswqp

dsekswqp1#

datetime.fromtimestamp要求输入Unix时间(以秒为单位),即一个数字。没有@ChatGPT,它必须是整数,float可以正常工作。pandas.Timestamp是一种数据类型,而不是数字。例如:

from datetime import datetime, timezone
import pandas as pd

print(datetime.fromtimestamp(86400.0, tz=timezone.utc))
# 1970-01-02 00:00:00+00:00

print(pd.Timestamp("now", tz="UTC"))
# 2023-03-25 08:43:14.811598+00:00

print(repr(pd.Timestamp("now", tz="UTC")))
# Timestamp('2023-03-25 08:43:14.811766+0000', tz='UTC')

就像可以从字符串创建pandas Timestamp对象一样,也可以从epoch以来的时间创建它们,但需要指定单位

print(pd.Timestamp(86400.0, unit="s", tz="UTC"))
# 1970-01-02 00:00:00+00:00

注意:我在这里显式地设置UTC是为了避免在其他机器上运行时产生混淆。Python的日期时间与该机器上设置的本地时间相似。

相关问题