datetime
模块是 Python 标准库中用于处理日期和时间的模块。它提供了多个类和函数,使得在 Python 中操作日期和时间变得非常方便。以下是 datetime
模块中一些常用的类和函数
获取完整的日期和时间
# 获取UTC的日期时间
print('获取utc的日期和时间:',datetime.datetime.utcnow())
# 获取当前时区的日期和时间。备注说明:today()和now()两种方法相同
print('获取当前时区的日期和时间',datetime.datetime.today())
print('获取当前时区的日期和时间',datetime.datetime.now())
单独获取当前时间的年月日时分秒毫秒
# 获取当前时间的年月日
print('获取当前时区的年月日',datetime.date.today())
print('获取当前时区的年',datetime.date.today().year)
print('获取当前时区的月',datetime.date.today().month)
print('获取当前时区的日',datetime.date.today().day)
# 获取当前时间的时分秒毫秒
print('获取当前时区的时分秒毫秒',datetime.datetime.now().time())
print('获取当前时区的时',datetime.datetime.now().time().hour)
print('获取当前时区的分',datetime.datetime.now().time().minute)
print('获取当前时区的秒',datetime.datetime.now().time().second)
print('获取当前时区的毫秒',datetime.datetime.now().time().microsecond)
获取传入的日期和时间的年月日时分秒毫秒
# 获取传入的日期,可以获取年月日
datetime.date(2021,2,3)
print('获取年:',datetime.date(2021,2,3).year)
print('获取月:',datetime.date(2021,2,3).month)
print('获取日:',datetime.date(2021,2,3).day)
# 获取传入的时间,可以获取时分秒毫秒
print(datetime.time(11,22,33,44))
print('获取时:',datetime.time(12,22,33).hour)
print('获取分:',datetime.time(12,22,33).minute)
print('获取秒:',datetime.time(11,22,33,44).second)
print('获取毫秒:',datetime.time(11,22,33,44).microsecond)
将时间转化成时间戳
now = datetime.datetime.now()
print('将时间转化成时间戳',now.timestamp())
# 格式化时间
print('将时间格式化为指定格式',datetime.datetime.strftime(now,'%Y-%m-%d %H:%M:%S.%f'))
将时间戳转换成格式化时间
timestamp = 1700261580 # 举例一个时间戳
# 将时间戳转换为格式化时间
formatted_time = datetime.datetime.fromtimestamp(timestamp).strftime('%Y-%m-%d %H:%M:%S')
print(formatted_time)
将字符串转换为datetime对象,可对其进行日期时间的计算和操作
# 创建一个字符串
date_string = "2024-03-25 10:30:00"
# 将字符串转换成datetime对象
datetime_obj = datetime.datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S")
print('转换前的类型:',type(date_string))
print('转换后的类型:',type(datetime_obj))
常用的格式化符号及其含义
'''这些符号可以用于 strftime() 方法来格式化日期时间对象为字符串,也可以用于 strptime() 方法来解析字符串为日期时间对象'''
# 常用的符号
%Y: 4 位数的年份,例如:2024
%y:两位数的年份表示,例如:00-99
%m: 2 位数的月份,取值范围为 01 到 12
%d: 2 位数的日期,取值范围为 01 到 31
%H: 24 小时制的小时,取值范围为 00 到 23
%I: 12 小时制的小时,取值范围为 01 到 12
%M: 分钟,取值范围为 00 到 59
%S: 秒,取值范围为 00 到 59
%A: 星期几的全名,例如:Monday
%a: 星期几的缩写,例如:Mon
%B: 月份的全名,例如:January
%b 或 %h: 月份的缩写,例如:Jan
%c:本地简化的日期 月份,如Wed Jun
%p: AM 或 PM 的标识符
%j:当前日期是本年的第几天(001-366)
%e:当前你日期是本月的第几天,取值范围为 1 到 31
%U:一年中的星期数(00-53)星期天为星期的开始
%w:星期(0-6),星期天为星期的开始
%W:一年中的星期数(00-53)星期一为星期的开始
%x:本地日期,格式:06/09/21(日/月/年)
%X:本地日期,格式:16:33:27(时:分:秒)
%%:%号本身
%g:用于格式化年份,表示两位数的年份(取值范围为 00 到 99),通常与 %V 一起使用
%V:表示 ISO 8601 标准中的周数,取值范围为 01 到 53
时间运算
# 创建两个datetime对象
start_time = datetime.datetime(2024, 3, 25, 10, 0, 0)
end_time = datetime.datetime(2024, 3, 25, 12, 3, 12)
# 计算时间间隔
time_difference = end_time - start_time
print('start_time和end_time的时间间隔:',time_difference)
# 创建一个datetime对象
current_time = datetime.datetime(2024, 3, 25, 10, 0, 0)
# 减少一段时间(比如减少一小时)
new_time = current_time - datetime.timedelta(hours=1)
# 增加一段时间
new_time2 = current_time + datetime.timedelta(weeks=3, days=1, hours=6, minutes=99, seconds=83, milliseconds=33,
microseconds=23)
print('输出减少后的时间',new_time)
print('输出增加后的时间',new_time2)
将日期和时间对象合并
# 创建一个日期对象
my_date = datetime.date(2024, 3, 25)
# 创建一个时间对象
my_time = datetime.time(10, 30, 0)
# 使用 combine() 函数将日期和时间对象合并
combined_datetime = datetime.datetime.combine(my_date, my_time)
print("合并后的日期时间对象:", combined_datetime)