首页 > 解决方案 > 将阿拉伯数字写的日期转换为英文,然后将时间从 12h 转换为 24h

问题描述

我有一个具有阿拉伯日期和时间格式的日期列,它也是一个 12 小时制,如果月份是分开的,日期并不总是有 2 位数字,例如它显示单个 9 或 09

日期如下所示:
٢٥‏/٩‏/٢٠١٩ ١٠:٠٧ ص

当我将该列转换为列表时,它看起来像这样:
'٢٥\u200f/٩\u200f/٢٠١٩ ١٠:٠٧ ص'

这是日期栏的照片:

在此处输入图像描述

日期列的 CSV 文件:

https://drive.google.com/file/d/1BMsuzrb5CLGVEPTxxULfOKOLzKb_7Uwi/view?usp=sharing

如果可能的话,我希望它采用英文日期时间格式和 24 小时制。

标签: pythonpython-3.xpandasnumpydata-analysis

解决方案


使用unicode库:

from unidecode import unidecode
from datetime import datetime

result = datetime.strptime(unidecode('٦‏/١١‏/٢٠١٨ ٨:١٢ م').replace('S', 'A').replace('m', 'P') + 'M', '%d/%m/%Y %I:%M %p')

输出:

2018-11-06 20:12:00

推荐阅读