gpt4 book ai didi

python:将 pywintyptes.datetime 转换为 datetime.datetime

转载 作者:行者123 更新时间:2023-12-02 09:57:53 30 4
gpt4 key购买 nike

我正在使用 pywin32 读取/写入 Excel 文件。我在 Excel 中有一些日期,以 yyyy-mm-dd hh:mm:ss 格式存储。我想将它们作为 datetime.datetime 对象导入到 Python 中。这是我开始的代码行:

prior_datetime = datetime.strptime(excel_ws.Cells(2, 4).Value, '%Y-%m-%d %H:%M:%S')

那没用。我收到错误:

strptime() argument 1 must be str, not pywintypes.datetime

我尝试将其转换为字符串,如下所示:

prior_datetime = datetime.strptime(str(excel_ws.Cells(2, 4).Value), '%Y-%m-%d %H:%M:%S')

这也不起作用。我收到错误:

ValueError: unconverted data remains: +00:00

然后我尝试了一些不同的东西:

prior_datetime = datetime.fromtimestamp(int(excel_ws.Cells(2, 4).Value))

还是没有运气。错误:

TypeError: a float is required.

转换为 float 没有帮助。也不是整数。 (嘿,此时我很绝望。)

我可能找错了地方,但我很难找到关于 pywin32 的任何好的文档,特别是 pywintypes 或 pywintypes.datetime 的文档。

有什么帮助吗?

最佳答案

所以问题是+00:00时区偏移。 Looking into this there's not an out of the box solution for Python

datetime.datetime.strptime("2016-04-01 17:29:25+00:00", '%Y-%m-%d %H:%M:%S %z')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/_strptime.py", line 324, in _strptime
(bad_directive, format))
ValueError: 'z' is a bad directive in format '%Y-%m-%d %H:%M:%S %z'

一种创可贴解决方案是剥离时区,但这感觉很恶心。

datetime.datetime.strptime("2016-04-01 17:29:25+00:00".rstrip("+00:00"), '%Y-%m-%d %H:%M:%S')
datetime.datetime(2016, 4, 1, 17, 29, 25)

环顾四周,看起来(如果您可以使用第三方库)dateutil 解决了这个问题,并且比 datetime.strptime 使用起来更好。

在命令行

pip install python-dateutil

代码

>>> import dateutil.parser                                                      
>>> dateutil.parser.parse("2016-04-01 17:29:25+00:00")
datetime.datetime(2016, 4, 1, 17, 29, 25, tzinfo=tzutc())

关于python:将 pywintyptes.datetime 转换为 datetime.datetime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39028290/

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