python实现将中文日期转换为数字日期

yizhihongxing

下面是将中文日期转换为数字日期的完整攻略:

前置知识

在实现中文日期转换为数字日期之前,你需要了解以下知识点:

  1. Python基础语法:字符串、列表、字典、时间模块等。
  2. 中文日期和数字日期的对应关系,比如“2018年7月16日”和“2018-07-16”。

代码实现

以下是将中文日期转换为数字日期的Python代码,包含了将中文数字转换为阿拉伯数字的函数:

import re

# 中文数字转阿拉伯数字
def cn2dig(src):
    if src == "":
        return None
    else:
        rmb_map = {"〇":0,"一":1,"二":2,"三":3,"四":4,"五":5,"六":6,"七":7,"八":8,"九":9}
        unit_map = {"十":10,"百":100,"千":1000}
        rmb = 0
        section = 0
        for i in range(len(src)):
            if src[i] in unit_map:
                section = rmb
                rmb = 0
            elif src[i] in rmb_map:
                if section != 0:
                    section *= unit_map[src[i]]
                    rmb += section
                    section = 0
                else:
                    rmb *= 10
                    rmb += rmb_map[src[i]]
        return rmb + section

# 中文日期转数字日期
def cn_date2num_date(cn_date):
    cn_num_dict = {"一": "01", "二": "02", "三": "03", "四": "04", "五": "05",
                   "六": "06", "七": "07", "八": "08", "九": "09", "十": "10",
                   "十一": "11", "十二": "12"}
    num_date = re.sub(u"([0-9]+)年([0-9]+)月([0-9]+)日", "\\1-\\2-\\3", cn_date)
    num_date = re.sub(u"([0-9]+)月([0-9]+)日", "\\1-\\2", num_date)
    num_date = re.sub(u"([0-9]+)[点时]([0-9]+)[分]?[钟]?", "\\1:\\2", num_date)
    num_date = re.sub(u"([0-9]+)[分]?[钟]?", "\\1:00", num_date)
    num_date = re.sub(u"([0-9]+)年", "\\1-", num_date)
    for cn_num in cn_num_dict.keys():
        num_date = re.sub(cn_num, cn_num_dict[cn_num], num_date)
    cn_year = re.findall(u"([0-9]+)年", cn_date)
    if cn_year:
        num_year = cn2dig(cn_year[0])
        num_date = re.sub(u"[0-9]+年", str(num_year) + "-", num_date)
    return num_date

示例说明

假设你要将“2021年3月十五日”转换为数字日期,在Python的交互式命令行中输入如下代码:

cn_date = "2021年3月十五日"
num_date = cn_date2num_date(cn_date)
print(num_date)

输出结果为:

2021-03-15

再假设你要将“二零二一年三月二十一日十点三十分”转换为数字日期,在Python的交互式命令行中输入如下代码:

cn_date = "二零二一年三月二十一日十点三十分"
num_date = cn_date2num_date(cn_date)
print(num_date)

输出结果为:

2021-03-21 10:30

通过这两个示例可以看出,代码能够很好地将中文日期转换为数字日期,并且具有一定的容错能力。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python实现将中文日期转换为数字日期 - Python技术站

(0)
上一篇 2023年6月2日
下一篇 2023年6月2日

相关文章

  • 教你使用Sublime text3搭建Python开发环境及常用插件安装另分享Sublime text3最新激活注册码

    教你使用Sublime Text3搭建Python开发环境及常用插件安装 Sublime Text3是一个功能强大的文本编辑器。它具有快速、轻量级和可定制的优点,成为了众多程序员开发的首选。 Python开发环境安装 下载安装 Python,建议下载Python3.x版本,因为Python2.x将于2020年停止维护。 添加Python到环境变量中。在系统变…

    python 2023年6月3日
    00
  • Python列表推导式详情

    Python列表推导式详情 在Python中,列表推导式是一种简洁而强大的语法,可以快速地生成一个新的列表。本文将详细讲解列表推导式的语法用法和注意事项,包括示例说明。 语法 列表推导式的语法如下: [expression for item in iterable if condition] 其中,expression是一个表达式,item是一个变量,ite…

    python 2023年5月13日
    00
  • python中pow函数用法及功能说明

    Python中pow函数用法及功能说明 pow函数简介 pow() 函数是内置函数之一,在 Python 中用于计算一个数的幂。它有两个参数,base 和 exponent,分别代表底数和指数,可以理解为 $base ^{exponent}$ 的值。 pow函数语法 pow(base, exponent) base:底数,可以是任意表达式 exponent:…

    python 2023年6月3日
    00
  • Python算法练习之二分查找算法的实现

    下面是详细讲解“Python算法练习之二分查找算法的实现”的完整攻略,包含两个示例说明。 二分查找算法 二分查找算法是一种在有序数组查找特定元素的搜索算法。它的基本思想是将数组分成两个部分,然后判断标元素在哪个部分,再在该部分中继查找,直到找到目标元素或者确定目标元素不存在为止。 二分查找算法的Python实现 下面一个示例代码,用于实现二分查找算法: de…

    python 2023年5月14日
    00
  • Python利用PyAutoGUI模块实现控制鼠标键盘

    Python利用PyAutoGUI模块实现控制鼠标键盘 简介 PyAutoGUI是一个可以让Python实现自动化GUI控制的模块。它可以通过鼠标、键盘输入和屏幕截图模拟对应的电脑操作,例如:输入键盘、移动鼠标、截图等。它支持Windows、Linux、OS X等多个操作系统。 安装 使用pip命令进行安装: pip install pyautogui 功能…

    python 2023年5月19日
    00
  • 在Python中调用Ping命令,批量IP的方法

    以下是调用Ping命令批量IP的方法: 1. 通过subprocess模块调用Ping命令 subprocess模块提供了调用系统命令的功能,可以通过它来调用Ping命令。具体步骤如下: 从标准库中导入subprocess模块; 使用subprocess.Popen方法调用系统命令,传入参数,如序列类型的命令参数; 通过.communicate()方法来读取…

    python 2023年6月2日
    00
  • 33个Python爬虫项目实战(推荐)

    “33个Python爬虫项目实战”是一份非常实用的Python爬虫项目合集,包含了33个不同的爬虫项目,涵盖了各种类型的网站和数据。本文将详细讲解“33个Python爬虫项目实战”的完整攻略,包括使用BeautifulSoup库和Scrapy框架两个示例。 使用BeautifulSoup库爬取网页数据的示例 以下是一个示例,演示如何使用BeautifulSo…

    python 2023年5月15日
    00
  • Python实现迪杰斯特拉算法并生成最短路径的示例代码

    下面是详细讲解“Python实现迪杰斯特拉算法并生成最短路径的示例代码”的完整攻略,包括算法原理、Python实现和两个示例说明。 算法原理 Dijkstra算法是一种用于查找图中最短路径的算法。其主要思想是从起点开始,逐步扩展到其他节点,直到到达终点。在扩展的过程中,记录每个节点的最短路径和前驱节点,最终得到起点到终点的最短路径。Dijkstra算法的实现…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部