作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 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/
我正在使用 pywin32 读取/写入 Excel 文件。我在 Excel 中有一些日期,以 yyyy-mm-dd hh:mm:ss 格式存储。我想将它们作为 datetime.datetime 对象
我是一名优秀的程序员,十分优秀!