遇到了一个困难,需要将多种时间字符串转化成datetime
对象,例如:
2019-10-24 09:20:44
2020-04-13
2019-11-04 13:11
04 月 13 日 10:41
2012 年 7 月 13 日
.....
本来以为挺简单,但是由于时间格式太多了,不好一个个去适配,有什么办法可以自动识别,并且转化成标准时间格式呢?
1
Trim21 2020-04-14 02:20:02 +08:00 via Android
python-dateutil
|
2
netnr 2020-04-14 08:00:52 +08:00
用正则匹配后在组装,首先替换两个空格为一个空格
\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2} \d{4}-\d{2}-\d{2} \d{4}-\d{2}-\d{2} \d{2}:\d{2} \d{2} 月 \d{2} 日 \d{2}:\d{2} \d{4} 年 (.*) 月 (.*) 日 |
3
Cmdhelp 2020-04-14 10:19:04 +08:00
python-arrow
|
4
imanux 2020-04-14 13:39:28 +08:00
推荐使用 moment, 比 arrow 轻量一些.
```python def date_identify(): mixed = [ '2019-10-24 09:20:44', '2020-04-13', '2019-11-04 13:11', '04 月 13 日 10:41', '2012 年 7 月 13 日', ] for m in mixed[:3]: print(moment.date(m).format('YYYYMMDD HH:mm:ss')) ch1 = mixed[3] print(moment.date(ch1, 'MM 月 DD 日 HH:mm').format('YYYYMMDD HH:mm:ss')) ch1 = mixed[4] print(moment.date(ch1, 'YYYY 年 M 月 DD 日').format('YYYYMMDD HH:mm:ss')) ``` 当然如果还有更多的格式, 需要手动一个个匹配的. |