首页 > 解决方案 > 使用下降毫秒将字符串解析为日期时间

问题描述

我需要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.2438602018-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'吗?

我不在乎毫秒,我想放弃它们。

标签: pythondatetimedatetime-format

解决方案


使用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

它也很有效


推荐阅读