python - 使用下降毫秒将字符串解析为日期时间
问题描述
我需要datetime
用python将一个字符串解析成一个,例如:
datetime.datetime.strptime('2018-06-29 08:15:27.243860', '%Y-%m-%d %H:%M:%S.%f')
但有时我不知道输入是2018-06-29 08:15:27.243860
或2018-06-29 08:15:27
(没有毫秒)。
如果我试过
datetime.datetime.strptime('2018-06-29 08:15:27', '%Y-%m-%d %H:%M:%S.%f')
我有一个例外
ValueError: time data '2018-06-29 08:15:27' does not match format '%Y-%m-%d %H:%M:%S.%f'
有什么方法可以使用相同的格式'2018-06-29 08:15:27.243860' and '2018-06-29 08:15:27'
吗?
我不在乎毫秒,我想放弃它们。
解决方案
使用datetime.fromisoformat并将微秒替换为零:
s = ('2018-06-29 08:15:27.243860', '2018-06-29 08:15:27')
for t in s:
print(datetime.fromisoformat(t).replace(microsecond=0))
2018-06-29 08:15:27
2018-06-29 08:15:27
它也很有效。
推荐阅读
- amazon-web-services - 对于需要进行大量 A/B 测试的人来说,Amazon Elastic Beanstalk 是否是正确的环境?
- python - 来自 groupby 的 Pandas 累积差异
- .net - mongodb .NET 驱动程序更新嵌套数组
- java - Javafx 画布内容消失
- php - 多次添加PHP
- python - 如何解决python 3中的“'int'和'NoneType'实例之间不支持'<'”?
- angular - 多个验证器的验证器模式部分不起作用
- rest - Swagger + jaxrs + 嵌入式码头 + 没有 web.xml
- ios - ARKit / SpriteKit - 将 pixelBufferAttributes 设置为 SKVideoNode 或以另一种方式在视频中制作透明像素(色度键效果)
- c++ - 如何在 Windows 上的 Ubuntu 上获得使用 XWindows 在 Bash 上构建的 C++ 程序?