您现在的位置是:网站首页> 编程资料编程资料
Python标准库datetime date模块的详细介绍_python_
2023-05-26
384人已围观
简介 Python标准库datetime date模块的详细介绍_python_
前言
datetime是Python提供的操作日期和时间的标准库,主要有datetime.date模块、datetime.time模块及datetime.datetime模块。其中date模块提供了日期操作相关的方法;time模块提供了时间操作相关的方法;datetime提供了日期时间操作的相关内容。本文主要介绍datetime.date模块中常用函数的使用详情。
日期对象类:
- 日期对象具有3个属性:年份、月份、日
- 日期对象的创建使用date()定义
- date()可以将传入的参数转化为datetime.date类型
- date()函数按位置传参必须是:年份、月份、日
- date()函数的参数中年份的范围是1-9999,月份的范围是1-12,日的范围是1-31
1、定义
- 先导入datetime库再操作
# coding:utf-8 import datetime now_date = datetime.date(2022, 12, 26) print(now_date)

1.2、常见错误
- 缺少参数
- 按位置传参时参数值超出范围
# coding:utf-8 import datetime print(datetime.date(2022, 12, 26)) print(type(datetime.date(2022, 12, 26))) ## 下面的代码报错,缺少参数 # print(datetime.date(2022, 12)) # TypeError: function missing required argument 'day' (pos 3) # 下面的代码提示值错误,date()函数的参数依次为 年份、月份、日;年份的范围是1-9999,月份的范围是1-12,日的范围是1-31 # print(datetime.date(10001, 12, 12)) # ValueError: year 10001 is out of range # print(datetime.date(2022, 13, 12)) # ValueError: month must be in 1..12 # print(datetime.date(2022, 12, 32)) # ValueError: day is out of range for month # 关键字传传参,只要保证年份、月份、天的值都在可用范围内,位置不受影响 print(datetime.date(day=15, year=2029, month=12))

2、date类常用的函数
2.1、获取当期日期
# coding:utf-8 import datetime print(datetime.date.today()) # 2022-07-08 print(type(datetime.date.today())) #

2.2、格式化日期
2.2.1、ctime()
- 将一个datetime.date对象转换为日期时间格式的字符串
- ctime()函数的参数必须是 datetime.date类型
print(datetime.date.ctime(datetime.date.today())) # Fri Jul 8 00:00:00 2022 print(type(datetime.date.ctime(datetime.date.today()))) ## ctime()函数的参数必须是 datetime.date类型 print(datetime.date.ctime(datetime.date(2022, 12, 26))) # Mon Dec 26 00:00:00 2022

2.2.2、datetime.date对象
datetime_1 = datetime.date(2022, 12, 26) # 获取日期对象的日,返回的值为int类型 print(datetime_1.day, type(datetime_1.day), type(datetime_1)) # 26# 获取日期对象的月,返回的值亦为int类型 print(datetime_1.month, type(datetime_1.month), type(datetime_1)) # 12 # 获取日期对象的年,返回的值亦为int类型 print(datetime_1.year, type(datetime_1.year), type(datetime_1)) # 2022

2.2.3、replace(self, year=None, month=None, day=None)
- 替换datetime.date对象的值
- replace()函数具有一个必传参数,三个默认参数
- year是要替换的年度
- month是要替换的月份
- day是要替换的日
datetime_1 = datetime.date(2022, 12, 26) print(datetime.date.replace(datetime_1, year=2019, month=11, day=25)) # 2019-11-25 print(type(datetime.date.replace(datetime_1, year=2019, month=11, day=25))) #print(datetime_1) # 必须有一个日期或者时间对象的参数,不传替换参数即返回传入的datetime.date对象的值 print(datetime.date.replace(datetime_1)) # 2022-12-26 # 只替换年度 print(datetime.date.replace(datetime_1, year=2019)) # 2019-12-26 # 只替换月份 print(datetime.date.replace(datetime_1, month=11)) # 2022-11-26 # 只替换日 print(datetime.date.replace(datetime_1, day=25)) # 2022-12-25

通过观察,替换年度、月份、日 都是在2022-12-26(datetime_1变量的初始值)基础上替换的。所以可以肯定的是该函数不会改变原变量的值
2.2.4、格式化日期
格式符号 | 符号的含义 |
%y | 两位数的年份表示(00-99) |
%Y | 四位数的年份表示(000-9999) |
%m | 月份(01-12) |
%d | 月内中的一天(0-31) |
%H | 24小时制小时数(0-23) |
%I | 12小时制小时数(01-12) |
%M | 分钟数(00-59) |
%S | 秒(00-59) |
%a | 本地简化星期名称 |
%A | 本地完整星期名称 |
%b | 本地简化的月份名称 |
%B | 本地完整的月份名称 |
%c | 本地相应的日期表示和时间表示 |
%j | 年内的一天(001-366) |
%p | 本地A.M.或P.M.的等价符 |
%U | 一年中的星期数(00-53)星期天为星期的开始 |
%w | 星期(0-6),星期天为 0,星期一为 1,以此类推。 |
%W | 一年中的星期数(00-53)星期一为星期的开始 |
%x | 本地相应的日期表示 |
%X | 本地相应的时间表示 |
%Z | 当前时区的名称 |
%% | %号本身 |
datetime_2 = datetime.datetime.today() print(datetime_2, type(datetime_2)) print(datetime.date.strftime(datetime_1, "%Y--%y--%D--%d--%H--%h--%M--%m--%S--%A--%a--%B--%b--%C--%c")) print(datetime.date.strftime(datetime_2, "%Y--%y--%D--%d--%H--%h--%M--%m--%S--%A--%a--%B--%b--%C--%c")) # 常用的格式: 年、月、日、时、分、秒 print(datetime.date.strftime(datetime_2, "%Y-%m-%d %H:%M:%S")) # 2022-07-08 18:32:40

2.3、ISO标准格式日期
- 格式:
(4位年-2位月-两位日),如(2022,07,08)
# 返回日期或者时间对象的ISO标准日期(4位年-2位月-两位日) print(datetime.date.isoformat(datetime_1), datetime_1) # 2022-12-26 2022-12-26 print(datetime.date.isoformat(datetime_2), datetime_2) # 2022-07-08 2022-07-08 18:44:36.613676 # 将符合ISO标准格式的日期字符串转换为datetime.date对象 print(datetime.date.fromisoformat("2022-07-08"), type(datetime.date.fromisoformat("2022-07-08"))) # 不符合ISO标准格式的日期字符串则报错 # print(datetime.date.fromisoformat("2022-7-08")) # ValueError: Invalid isoformat string: '2022-7-08' # print(datetime.date.fromisoformat("2022-07-8")) # ValueError: Invalid isoformat string: '2022-7-08'
2.3.1、获取符合ISO标准格式的日期字符串的星期几(1~7)
print(datetime.date.isoweekday(datetime.date(2022, 7, 3))) # 7 星期日 print(datetime.date.isoweekday(datetime.date(2022, 7, 4))) # 1 星期一 print(datetime.date.isoweekday(datetime.date(2022, 7, 8))) # 5 星期五 print(datetime.date.isoweekday(datetime.date(2022, 7, 9))) # 6 星期六

2.3.2、返回日期或者时间对象的星期几(0~6)
# 返回日期或者时间对象的星期几(0~6) print(datetime.date.weekday(datetime.date(2022, 7, 3))) # 6 星期日 print(datetime.date.weekday(datetime.date(2022, 7, 4))) # 0 星期一 print(datetime.date.weekday(datetime.date(2022, 7, 8))) # 4 星期五 print(datetime.date.weekday(datetime.date(2022, 7, 9))) # 5 星期六

2.3.3、根据时间戳计算日期
print(datetime.date.fromtimestamp(2015236523)) # 2033-11-10 print(type(datetime.date.fromtimestamp(2015236523))) #
提示:
本文由神整理自网络,如有侵权请联系本站删除!
本站声明:
1、本站所有资源均来源于互联网,不保证100%完整、不提供任何技术支持;
2、本站所发布的文章以及附件仅限用于学习和研究目的;不得将用于商业或者非法用途;否则由此产生的法律后果,本站概不负责!
相关内容
- Python实现计算AUC的示例代码_python_
- 机器学习数据预处理之独热One-Hot编码及其代码详解_python_
- Python中函数的参数类型详解_python_
- python四则运算表达式求值示例详解_python_
- 新版selenium4.0 + Python使用详解_python_
- PyQt5实现tableWidget 居中显示_python_
- Python中xlsx文件转置操作详解(行转列和列转行)_python_
- python通过ElementTree操作XML_python_
- Python实现计算AUC的三种方式总结_python_
- Python标准库datetime date模块的详细介绍_python_
