gpt4 book ai didi

python - 神秘时间转换( Pandas 和日期时间)

转载 作者:行者123 更新时间:2023-12-01 09:09:44 25 4
gpt4 key购买 nike

谁能解释一下吗?

import pandas as pd
import datetime
pd.to_datetime(1532329236726000, unit="us")

返回时间戳('2018-07-23 07:00:36.726000')

datetime.datetime(2018, 7, 23, 8, 0, 36, 726000).timestamp() * 10**6

返回1532329236726000.0

那么,是 1532329236726000 2018-07-23 07:00:36 还是 2018-07-23 08:00:36 ?

最佳答案

这将取决于您创建的日期时间对象的时区信息。实际上,您在这两种情况下都创建了一个天真的时区对象,该对象没有设置特定的时区

datetime.datetime() 对象可能采用本地时区,而不是 pd.to_datetime() 采用的 UTC

datetime.datetime(2018, 7, 23, 7, 0, 36, 726000).replace(tzinfo=pytz.utc).timestamp() * 10**6 返回相同的纪元你提出原来的问题的时间

来自 python 文档

“朴素对象不包含足够的信息来明确地相对于其他日期/时间对象定位自身。朴素对象是否表示协调世界时 (UTC)、本地时间或其他时区的时间完全取决于程序,就像特定数字是否代表米、英里或质量取决于程序一样。朴素的对象很容易理解和使用,但代价是忽略现实的某些方面。”

https://docs.python.org/3/library/datetime.html

您可以明确告诉答案中的两个函数使用带有 kwarg 的 UTC 构造函数(并且不使用 pytz ,如下所示)

datetime.datetime(2018, 7, 23, 7, 0, 36, 726000, tzinfo=datetime.timezone.utc)

pd.to_datetime(1532329236726000,unit="us",utc=True)

关于python - 神秘时间转换( Pandas 和日期时间),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51755969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com