?time ?calendar? datatime 三个模块
time模块、datetime模块和calendar模块。其中time模块是通过调用C库实现的,所以有些方法在某些平台上可能无法调用,但是其提供的大部分接口与C标准库time.h基本一致。time模块相比,datetime模块提供的接口更直观、易用,功能也更加强大
1. time 和 calendar
import time
import calendar
# 时间戳
timestamp = time.time()
print(timestamp)
# 返回一个可读的形式为Mon Aug 30 23:00:35 2021" ; ctime(args) asctime(args),args可不传,也可以传时间元组struct_time
c_time = time.ctime()
print(c_time)
asc_time = time.asctime()
print(asc_time)
# 返回当地时间下的时间元组struct_time; localtime(args),args可以不传,也可以传浮点数
localtime = time.localtime()
print(localtime) # 输出:time.struct_time(tm_year=2021, tm_mon=8, tm_mday=30, tm_hour=23, tm_min=14, tm_sec=55, tm_wday=0, tm_yday=242, tm_isdst=0)
# 时间元组拆分
year = localtime.tm_year # 年
month = localtime.tm_mon # 月
y_day = localtime.tm_yday # 一年第几天
m_day = localtime.tm_mday # 一月第几天
w_day = localtime.tm_wday # 一周第几天
hour = localtime.tm_hour # 时
minute = localtime.tm_min # 分
sec = localtime.tm_sec # 秒
isdst = localtime.tm_isdst # 是否是夏令时,值有:1(夏令时)、0(不是夏令时)、-1(未知),默认 -1
# 格式化时间 时间转字符串
# 24 小时制显示
format_time = time.strftime('%Y-%m-%d %H:%M:%S', localtime)
print(format_time) # 输出 2021-08-30 23:21:56
# 12 小时制显示
f_time = time.strftime('%Y-%m-%d %I:%M:%S', localtime)
print(f_time) # 输出 2021-08-30 11:23:00
# 字符串转时间 返回时间元组
p_time = time.strptime(format_time, '%Y-%m-%d %H:%M:%S')
print(p_time)
# 日历
cal = calendar.month(2021, 8)
print(cal)
'''
输出结果:
August 2021
Mo Tu We Th Fr Sa Su
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
'''
2.datetime 拥有date,time,datetime类
import datetime
# 日期
dt = datetime.date(2021, 8, 30)
print(dt)
# 日期属性 可通过属性值访问 或者 __getattribute__(args)方法来实现
print(dt.year, dt.month, dt.day)
print(dt.__getattribute__('year'))
# 返回时间元组:struct_time
print(dt.timetuple()) # 输出:time.struct_time(tm_year=2021, tm_mon=8, tm_mday=30, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=242, tm_isdst=-1)
# 时间 参数:hour小时、minute分钟、second秒、microsecond毫秒和tzinfo五部分
tm = datetime.time(23, 36, 56, 665)
print(tm)
# 和日期使用方法一样
print(tm.hour)
print(tm.__getattribute__('hour'))
# 格式化时间
print(tm.strftime('%H:%M:%S'))
# 日期加时间
dt_tm = datetime.datetime(2021, 8, 30, 23, 36, 56, 665)
print(dt_tm)
# 获取当前日期时间
now = datetime.datetime.now()
print(now)
# 获取 日期 , 时间
now_dt = now.date()
now_tm = now.time()
print(now_dt)
print(now_tm)
# 日期和时间组成datetime
new_date = datetime.datetime.combine(dt, tm)
print(new_date)
# 返回utc(世界统一时间) 时间元组
print(now.utctimetuple())
# 也和time模块一样有strftime和strptime方法
# datetime.datetime.strptime('2021-08-30 23:55:55','%Y-%m-%d %H:%M:%S')
# 返回datetime.datetime(2021-08-30 23:55:55)
|