当毫秒有 6 位数字时,%f 有效,但如果超过 6 位数字,则会抛出错误。我有一个临时解决方案,将第 7 位硬编码为 0,但是有更好的方法吗?目前以下作品
print (datetime.datetime.strptime(('2014-11-19 00:00:00.0000000').strip(), '%Y-%m-%d %H:%M:%S.0%f')).date()
根据文档datetime.strptime()
https://docs.python.org/2/library/datetime.html#strftime-and-strptime-behavior https://docs.python.org/2/library/datetime.html#strftime-and-strptime-behavior,技术说明 (4),%f 仅接受 1 - 6 个字符:
%f 是 C 标准中格式字符集的扩展
(但在日期时间对象中单独实现,因此总是
可用的)。当与 strptime() 方法一起使用时,%f 指令
接受一到六位数字以及右侧的零填充。
我不相信你已经正确解决了问题。您不应该在字符串中添加零前缀,而是将所有超过 6 的内容都删除(这对时间的贡献不太重要)。
像这样的事情:
s='2014-11-19 00:00:00.0000000'
print (datetime.datetime.strptime((s[:26]).strip(), '%Y-%m-%d %H:%M:%S.%f')).date()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)