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
"""

 

 
posted @ 2021-08-21 17:52  zwx901323  阅读(46)  评论(0)    收藏  举报