python有多种方式处理时间日历,转换日历格式是一个常见的功能。
模块分类
(1)time模块:提供了处理时间和表示之间转换的功能
(2)Calender模块:提供与日历相关的功能,例如为给定的月份或年份打印文本日历
(3)datetime模块:拥有python处理日历和时间的功能
time模块
获取当前时间戳
从0时区的1970年1月1日0时0分0秒,到给定日期时间的秒数
import time
print(time.time()) #1677462689.814213
year = time.time()/(60*60*24*365) + 1970
print(year)#2023.1919966484088
获取时间元组
将时间处理为9个数字的元组
import time
print(time.localtime())#time.struct_time(tm_year=2023, tm_mon=2, tm_mday=27, tm_hour=9, tm_min=55, tm_sec=18, tm_wday=0, tm_yday=58, tm_isdst=0)
#tm_wday一个星期的第几天 今天周一, tm_yday=58 一年的第几天, tm_isdst=0是否是夏令时
print(time.localtime(1677462806.3042178))#可以传入一个时间戳进行对应的查看
#不传参数默认参数为当前的时间戳
获取格式化时间
import time
#time.ctime(seconds)参数默认为现在时间的秒数
print(time.ctime()) #Mon Feb 27 20:07:58 2023
#time.asctime(t_tuple)
print(time.asctime(time.localtime())) #Mon Feb 27 20:09:22 2023
自定义格式化时间的格式
#time.strftime(格式字符串,时间元组)
time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) #'2023-02-27 20:14:13'
格式化日期 转 时间元组
#time.strptime(日期字符串, 格式符字符串)
t = time.strptime("2023-02-27 20:14:13", "%Y-%m-%d %H:%M:%S")
#time.struct_time(tm_year=2023, tm_mon=2, tm_mday=27, tm_hour=20, tm_min=14, tm_sec=13, tm_wday=0, tm_yday=58, tm_isdst=-1)
#time.mktime(时间元组)
#实现时间元组转时间戳
print(time.mktime(t))#1677500053.0
计算程序运行的时间
import time
start = time.time()
for i in range(100):
print("",end= "")
end = time.time()
print(end - start) #0.0009965896606445312
休眠n秒
#time.sleep(n)
for i in range(i):
print(time.time())
time.sleep(1)
Calendar模块
提供和日历相关的功能
import calendar
print(calendar.month(2023, 3))
datetime 模块
python处理时间和日期的标准库,里面有datetime类,常用的还有date类,以及time类
可以做一些计算之类的工作
获取当天日期
import datetime
print(datetime.datetime.now()) #2023-02-27 20:28:46.616188
print(datetime.datetime.today()) #2023-02-27 20:28:46.616188
单独的获取当前时间的部分值
import datetime
now = datetime.datetime.now() #2023-02-27 20:28:46.616188
print(now.year) #2023
print(now.month) #2
print(now.day) #27
print(now.hour) #20
print(now.minute) #31
print(now.second) #29
时间间隔
#增加一段时间
import datetime
now = datetime.datetime.now()
print(now)#2023-02-27 20:33:29.741039
t = datetime.timedelta(days = 7)
print(now + t)#2023-03-06 20:33:29.741039
#计算时间间隔
first = datetime.datetime(2017, 9, 9, 2, 12, 0, 0)
print(first)
last = datetime.datetime(2017, 9, 10, 2, 12, 0, 0)
delta = last - first
print(delta) #1 day, 0:00:00
print(type(delta)) #1 day, 0:00:00
print(delta.total_seconds()) #86400.0