gpt4 book ai didi

python - 有没有办法将多种日期格式转换为日期时间python

转载 作者:行者123 更新时间:2023-11-29 11:21:44 25 4
gpt4 key购买 nike

有没有一种简单的方法可以在Python中将多种日期格式转换为日期时间对象?最终这些将被插入到 DATE 类型的 MySQL 数据库中。

我可能收到的数据类型的示例:

2008 年 8 月 2 日

2007年2月4日

2014 年 5 月

转换后我希望这些是:

2008-08-02

2007-04-02

2014-05-00

是否有一种简单的方法可以做到这一点,或者我是否必须对每个场景进行硬编码?

最佳答案

使用第三方dateutil图书馆:

>>> from dateutil import parser
>>> parser.parse("August 2, 2008")
datetime.datetime(2008, 8, 2, 0, 0)
>>> parser.parse("04-02-2007")
datetime.datetime(2007, 4, 2, 0, 0)
>>> parser.parse("May 2014")
datetime.datetime(2014, 5, 6, 0, 0)

转换为所需格式:

>>> parser.parse("August 2, 2008").strftime('%Y-%m-%d')
'2008-08-02'
>>> parser.parse("04-02-2007").strftime('%Y-%m-%d')
'2007-04-02'
>>> parser.parse("May 2014").strftime('%Y-%m-%d')
'2014-05-06'

您可以使用 pip 安装它:

pip install python-dateutil

另请参阅:

>>> parser.parse("May 2014")
datetime.datetime(2014, 5, 6, 0, 0)
>>> # As you wanted day to be 0 and that is not valid
...
>>> datetime.datetime(2014, 5, 0, 0, 0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: type object 'datetime.datetime' has no attribute 'datetime'
>>> # Workaround:
...
>>> from datetime import datetime
>>> datedefault = datetime.now().replace(day=1, hour=0, minute=0, second=0, microsecond=0)
>>> parser.parse("May 2014",default=datedefault).strftime('%Y-%m-%d')
'2014-05-01'

如果日期字符串中未指定日期且未指定默认值,则将采用当前日期。因为今天是06 Aug 2016 ,将日期替换为 0"May 2014" 答案的第一部分.

关于python - 有没有办法将多种日期格式转换为日期时间python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38801516/

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