python - 将阿拉伯数字写的日期转换为英文,然后将时间从 12h 转换为 24h
问题描述
我有一个具有阿拉伯日期和时间格式的日期列,它也是一个 12 小时制,如果月份是分开的,日期并不总是有 2 位数字,例如它显示单个 9 或 09
日期如下所示:
٢٥/٩/٢٠١٩ ١٠:٠٧ ص
当我将该列转换为列表时,它看起来像这样:
'٢٥\u200f/٩\u200f/٢٠١٩ ١٠:٠٧ ص'
这是日期栏的照片:
日期列的 CSV 文件:
https://drive.google.com/file/d/1BMsuzrb5CLGVEPTxxULfOKOLzKb_7Uwi/view?usp=sharing
如果可能的话,我希望它采用英文日期时间格式和 24 小时制。
解决方案
使用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
推荐阅读
- flutter - Flutter:错误:未定义类似函数的宏“__GNUC_PREREQ”(Ubuntu 18.4)
- javascript - 我如何像这个网站 https://yolele.com/ 那样滚动图像水平动画
- python - 如何使用 Selenium 单击按钮
- python - 带有 Python 的 PyInstaller:3.10.0b4 - ImportError:没有名为 _bootlocale 的模块
- python - SQL Login Failed [2800] with Windows Authentication only when using pyodbc, and only for certain databases
- string - Sscanf 没有正确匹配单引号
- docker - Flask Migrate,同时从 env vars 设置预定义的登录用户
- android - Android 应用程序在后台以编程方式从文档文件中读取
- python - 如何在云中安排 python 脚本?
- excel - Excel - 如何将查找表转换为线性行