Python入门-系统模块time
1.time模块
时间戳:1970年,1月1日开始
时间元祖:包含日期,时间,保存日期结构的元祖对象
格式化时间日期:按照指定的标记进行格式化处理
时间戳
import time time_num = time.time() # 获取时间戳 time_tuple = time.localtime(time_num) # 时间戳转为时间元祖 res_res = time.mktime(time_tuple) # 时间元祖转换回时间戳 format_time= time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) #日期格式化 res_tuple_time = time.strptime(format_time, '%Y-%m-%d %H:%M:%S') print("时间戳:",time_num) print("时间戳转为时间元祖:",time_tuple) print("时间元祖转为时间戳:",res_res) print("格式化日期显示:", format_time) print("格式化时间转回时间元祖:", res_tuple_time) """ 时间戳: 1629636166.1266477 时间戳转为时间元祖: time.struct_time(tm_year=2021, tm_mon=8, tm_mday=22, tm_hour=20, tm_min=42, tm_sec=46, tm_wday=6, tm_yday=234, tm_isdst=0) 时间元祖转为时间戳: 1629636166.0 格式化日期显示: 2021-08-22 20:42:46 格式化日期转回时间元祖: time.struct_time(tm_year=2021, tm_mon=8, tm_mday=22, tm_hour=20, tm_min=42, tm_sec=46, tm_wday=6, tm_yday=234, tm_isdst=-1) """ print("格式化日期显示-只显示日期:", time.strftime("%F", time.localtime())) print("格式化日期显示-只显示时间:", time.strftime("%T", time.localtime())) """ 格式化日期显示-只显示日期: 2021-08-22 格式化日期显示-只显示日期: 20:47:15 """
时间戳的应用
import time res = time.time() print(res) #获取时间戳:1629537871.082874 #时间戳的使用,计算程序执行时间 def sum(): s = 0 for i in range(29999999): s += i return s def main(): qidong1 = time.time() cpu_time1= time.process_time() sum() qidong2 = time.time() cpu_time2 = time.process_time() print("【程序CPU耗时统计】:{}秒".format(cpu_time2-cpu_time1)) print("【程序计算耗时统计】:{}秒".format(qidong2-qidong1)) main() """ 1629538723.3552346 【程序CPU耗时统计】:1.859375秒 【程序计算耗时统计】:1.8734791278839111秒 """
2.日期模块 calendar
import calendar calendar.setfirstweekday(calendar.SUNDAY) #设置一周的开始周几,默认周一 print(calendar.calendar(2021)) # 显示年历 print(calendar.month(2021, 8)) # 显示月历,返回结果可看出不准,8月第一天是星期日,不是周六 print(calendar.monthrange(2021, 8)) #返回该年月的:第一天是星期几,一个月的天数【实测不准!!】 print(calendar.isleap(2020)) # 判断是否闰年 print(calendar.leapdays(2012,2020)) #判断俩年份间的闰年个数,包头不包尾 """ 年历代码不展示 Su Mo Tu We Th Fr Sa 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 (6, 31) True 2 """
3.模块datetime
datetime.date日期
from datetime import date print("=======datetime.date日期操作演示===========") print(date.today()) #获取今天的日期 res = date(2021,9,17) print(res.weekday()) #获取指定日期,是星期几 print(res.isoformat()) #获取指定日期,格式化 """ =======datetime.date日期操作演示=========== 2021-08-22 4 2021-09-17 """
datetime.time时间
from datetime import time # 和time.time模块不能同时导入 from datetime import datetime from datetime import timedelta time_str = time(23, 59, 59) print("获取指定时间为:{}时{}分{}秒".format(time_str.hour, time_str.minute, time_str.second )) date_res = datetime(2021, 8, 22, 22, 54, 27) #只需要传入年月日时分秒 print("获取指定日期时间:", date_res) print("=======datetime.timedelta时间操作演示===========") print("再加X小时,实际日期为:",date_res + timedelta(hours=30)) print("再加上X天,实际日期为:",date_res + timedelta(days=20)) print("再减去X天,实际日期为:",date_res - timedelta(days=20)) """ 获取指定时间为:23时59分59秒 获取指定日期时间: 2021-08-22 22:54:27 =======datetime.timedelta时间操作演示=========== 再加X小时,实际日期为: 2021-08-24 04:54:27 再加上X天,实际日期为: 2021-09-11 22:54:27 再减去X天,实际日期为: 2021-08-02 22:54:27 """
atetime.tzinfo时区
from datetime import tzinfo from datetime import datetime from datetime import timedelta # 继承tzinfo,覆写方法 class UTC(tzinfo): def __init__(self, offset=0): self.__offset = 0 def tzname(self, dt): return "UTC时区:".format(self.__offset) def utcoffset(self, dt): return timedelta(hours=self.__offset) def dst(self, dt): return timedelta(hours=self.__offset) if __name__ == '__main__': china_date = datetime(2021, 8, 22, 22, 54, 27, tzinfo=UTC(8)) gemena_date = datetime(2021, 8, 22, 22, 54, 27, tzinfo=UTC(1)) print("=======datetime.tzinfo时区演示===========") print("北京时间:", china_date) print("德国时间:", gemena_date) print("北京转德国时间:", china_date.astimezone(UTC(1))) print(china_date - gemena_date) """ =======datetime.tzinfo时区演示=========== 北京时间: 2021-08-22 22:54:27+00:00 德国时间: 2021-08-22 22:54:27+00:00 北京转德国时间: 2021-08-22 22:54:27+00:00 0:00:00 """