文章目录
- 概要
- 基本认识
- 函数使用
概要
datetime模块是Python中处理日期和时间的模块。它提供了与日期和时间相关的类和函数,方便进行日期和时间的计算和操作。
基本认识
datetime模块中主要的类有:
- datetime:日期和时间的类,包含年、月、日、时、分、秒等信息。
- date:日期的类,包含年、月、日等信息。
- time:时间的类,包含时、分、秒等信息。
- timedelta:时间间隔的类,用于表示两个日期或时间的差值。
datetime模块中常用的函数有:
- datetime.now():返回当前日期和时间。
- datetime.strptime(date_string, format):将字符串按照指定的格式转换为datetime对象。
- datetime.strftime(format):将datetime对象按照指定的格式转换为字符串。
- date.today():返回今天的日期。
- timedelta(days, seconds, microseconds, milliseconds, minutes, hours, weeks):创建一个指定时间间隔的timedelta对象。
格式化的格式
- %Y:四位数的年份(例如:2022)
- %m:两位数的月份(01-12)
- %d:两位数的日期(01-31)
- %H:24小时制的小时数(00-23)
- %M:分钟数(00-59)
- %S:秒数(00-59)
- %A:完整的星期几名称(例如:Monday)
- %B:完整的月份名称(例如:January)
- %c:日期和时间的本地表示(例如:Fri Nov 11 10:30:45 2022)
- %x:本地日期的字符串表示(例如:11/11/22)
- %X:本地时间的字符串表示(例如:10:30:45)
函数使用
- 获取当前时间
now = datetime.datetime.now() # 当前时间: 2024-02-29 17:15:44.189344
print("当前时间:", now)
- 获取当前日期
today = datetime.date.today() # 当前日期: 2024-02-29
print("当前日期:", today)
- 格式化时间日期为字符串
formatted = now.strftime('%Y-%m-%d %H:%M:%S') # 格式化后的时间: 2024-02-29 17:15:44
print("格式化后的时间:", formatted)
- 将字符串转化为日期时间对象
date_string = '2022-01-01'
date = datetime.datetime.strptime(date_string, '%Y-%m-%d')
print("转换后的日期:", date) # 转换后的日期: 2022-01-01 00:00:00
- datetime.strftime的用法
import datetime
# 创建一个日期时间对象
dt = datetime.datetime(2022, 11, 11, 10, 30, 45)
# 格式化为字符串
formatted = dt.strftime('%Y-%m-%d %H:%M:%S')
print(formatted) # 输出:2022-11-11 10:30:45
# 使用其他格式化指令
formatted = dt.strftime('%A, %B %d, %Y')
print(formatted) # 输出:Friday, November 11, 2022
formatted = dt.strftime('%c')
print(formatted) # 输出:Fri Nov 11 10:30:45 2022
- datetime.timedelta函数
是一个表示日期或时间之间的持续时间或差异的类。它可用于对日期和时间对象进行算术运算。
import datetime
# 创建一个表示7天的timedelta对象
one_week = datetime.timedelta(days=7)
# 创建一个表示2小时的timedelta对象
two_hours = datetime.timedelta(hours=2)
# 对timedelta对象进行算术运算
total_duration = one_week + two_hours
print(total_duration) # 输出:7 days, 2:00:00
# 可以访问timedelta对象的各个组成部分
print(total_duration.days) # 输出:7
print(total_duration.seconds) # 输出:7200
# 也可以从日期或时间对象中减去一个timedelta
now = datetime.datetime.now()
one_hour_ago = now - datetime.timedelta(hours=1)
print(one_hour_ago) # 输出:当前日期和时间减去1小时