PYTHON - datetime 模块
datetime模块
1.1 主要类
- date 日期对象
- time 时间对象
- datetime 日期时间对象
- timedelta 两个时间之间的时间间隔
1.2 date类
date对象由year年份、month月份及day日期三个部分来构成的
1.2.1 获取当前日期
from datetime import datetime, date
today = datetime.today().date()
print(type(today), today) # <class 'datetime.date'> 2023-04-20
today = date.today()
print(type(today), today) # <class 'datetime.date'> 2023-04-20
这两种方式都可以。
1.2.2 年月日
date日期对象,里面有年月日字段:
from datetime import datetime, date
today = date.today()
print("yead:", today.year)
print("month:", today.month)
print("day:", today.day)
year, month, day属性是表示年月日。
1.2.3 输出
可以输出多种信息:比如年月日,星期等。
from datetime import datetime, date
today = date.today()
print("当前日期:", today)
# 当前日期: 2023-04-20
print("当前日期(string):", today.ctime())
# 当前日期(string): Thu Apr 20 00:00:00 2023"星期:"
print("当前日期(tuple):", today.timetuple())
# 当前日期(tuple): time.struct_time(tm_year=2023, tm_mon=4, tm_mday=20, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=110, tm_isdst=-1)
print("星期:", today.weekday())
# 星期: 3
# 注意: 0代表星期一,1代表星期二 ...
print("星期:", today.isoweekday())
# 星期: 4
# 注意: 1代表星期一,2代表星期二 ...
print("公历序数:", today.toordinal())
# 公历序数: 738630
print("年,全年周,星期", today.isocalendar())
# 年,全年周,星期 datetime.IsoCalendarDate(year=2023, week=16, weekday=4)
可以自定义输出格式:
from datetime import date
today = date.today()
print(today.strftime("%Y-%m-%d"))
%Y 年, %m月, %d日
1.2.4 创建日期
- 通过年月日创建:
from datetime import date
today = date(2022, 8, 18)
print(today.strftime("%Y-%m-%d 星期"), today.isoweekday())
参数: date(年,月,日)
- 通过公历序数创建
import datetime
from datetime import date
today = date.fromordinal(888888)
print(today.strftime("%Y-%m-%d 星期"), today.isoweekday()) # 2434-09-10 星期 7
print(datetime.MAXYEAR) # 9999
注意:数不能太大,因为最大年份只能表示到9999
- 通过时间戳创建
from datetime import date
import time
t = time.time()
today = date.fromtimestamp(t)
print(today.strftime("%Y-%m-%d 星期"), today.isoweekday()) # 2023-04-20 星期 4
1.3 time类
表示时间对象,由时,分,秒,微秒组成
from datetime import time, datetime
t = datetime.now().time()
print(type(t), t) # <class 'datetime.time'> 13:30:29.811985
1.3.1 属性
from datetime import time, datetime
t = datetime.now().time()
print(f"时:{t.hour}, 分:{t.minute}, 秒:{t.second}, 微秒:{t.microsecond}")
hour时, minute分,second 秒, , microsecond 微秒
1.3.1 输出
from datetime import time
# 创建一个时间:年,分,秒,微秒
t = time(13, 34, 5, 1234)
print(t.isoformat())
print(t.strftime("%H:%M:%S:%f"))
输出:13:34:05.001234
其中:时(%H),分(%M),秒(%S),微秒(%f)
1.4 datetime类
datetime对象包含了date和time对象的所有信息。
1.4.1 当前日期和时间
from datetime import datetime
today = datetime.today()
print(today)
# 2023-04-20 13:42:23.892367
print(today.date())
# 2023-04-20
print(today.time())
# 13:42:23.892367
print(today.utctimetuple())
# time.struct_time(tm_year=2023, tm_mon=4, tm_mday=20, tm_hour=13, tm_min=43, tm_sec=35, tm_wday=3, tm_yday=110, tm_isdst=0)
其中:date()返回日期部分,time()返回时间部分,utctimetuple返回utc时间元组部分
1.4.2 属性
和date和time一样。
from datetime import datetime
today = datetime.today()
print(f"{today.year}-{today.month}-{today.day} {today.hour}:{today.minute}:{today.second}")
1.4.3 其它方法
from datetime import datetime
# 创建一个datetime对象,参数:年月日,时分秒
today = datetime(2023, 4, 20, 13, 52, 5)
print(today.date()) # 日期
print(today.time()) # 时间
print(today.timetuple()) # 时间元组
print(today.toordinal()) # 序数
print(today.weekday()) # 星期
print(today.isoweekday()) # 星期
print(today.isocalendar()) # iso格式化输出
print(today.isoformat()) # iso格式化输出
print(today.strftime("%Y-%m-%d %H:%M:%S")) # 指定输出格式
print(today.replace(year=2024, month=3)) # 替换
replace是替换日期,对于date,time类都支持。
1.5 timedelta类
timedelta对象表示一个时间段,即两个日期 (date) 或日期时间 (datetime) 之间的差值。
目前支持参数:weeks、days、hours、minutes、seconds、milliseconds、microseconds。
from datetime import datetime, timedelta
today = datetime.now()
print("今天:", today)
print("加上10天:", today + timedelta(days=10))
print("减去20天,5小时:", today - timedelta(days=20, hours=5))
1.5.1 日期差值
from datetime import datetime, timedelta
today1 = datetime(2023, 4, 20, 0, 0, 0)
today2 = datetime(2023, 4, 21, 5, 3, 0)
t = today2 - today1
print(type(t), t) # <class 'datetime.timedelta'> 1 day, 5:03:00
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY