time模块、datetime模块、random模块、sys模块

发布时间 2023-06-09 19:43:32作者: 毓见

time模块(跟时间打交道的模块)

表示时间的三种方式:
    1. 时间戳:秒数
    2. 格式化的时间字符串:2023-01-01 11:11:11
    3. 结构化时间:它一般不是让人看的,让计算机看的
    
# 使用时间模块,需要导入time模块

import time

python中时间日期格式化符号:

%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身

几种格式之间的转换:

练习:

结构化时间:

timestamp:时间戳
struct_time:结构化时间
format_string:格式化时间

时间戳-->结构化时间:

#time.gmtime(时间戳)    #UTC时间,与英国伦敦当地时间一致
#time.localtime(时间戳) #当地时间。例如我们现在在北京执行这个方法:与UTC时间相差8小时,UTC时间+8小时 = 北京时间 
>>>time.gmtime(1500000000)
time.struct_time(tm_year=2017, tm_mon=7, tm_mday=14, tm_hour=2, tm_min=40, tm_sec=0, tm_wday=4, tm_yday=195, tm_isdst=0)

>>>time.localtime(1500000000)
time.struct_time(tm_year=2017, tm_mon=7, tm_mday=14, tm_hour=10, tm_min=40, tm_sec=0, tm_wday=4, tm_yday=195, tm_isdst=0)

#结构化时间-->时间戳 
#time.mktime(结构化时间)
>>>time_tuple = time.localtime(1500000000)
>>>time.mktime(time_tuple)
1500000000.0

datetime模块

import datetime

# 自定义日期
res = datetime.date(2023, 7, 15)
print(res)  # 2023-07-15

# 获取本地时间
# 年月日
now_date = datetime.date.today()
print(now_date)  # 2023-06-09
# 年月日时分秒
now_time = datetime.datetime.today()
print(now_time)  # 2023-06-09 16:45:44.810304

# 无论是年月日,还是年月日时分秒对象都可以调用以下方法获取针对性的数据
# 以datetime对象举例
print(now_time.year)  # 获取年份2023
print(now_time.month)  # 获取月份6
print(now_time.day)  # 获取日9
print(now_time.weekday())  # 获取星期(weekday星期是0-6) 0表示周一
print(now_time.isoweekday())  # 获取星期(weekday星期是1-7) 1表示周一

# timedelta对象
# 可以对时间进行运算操作
import datetime

# 获得本地日期 年月日
tday = datetime.date.today()
# 定义操作时间 day=7 也就是可以对另一个时间对象加7天或者减少7点
tdelta = datetime.timedelta(days=7)

# 打印今天的日期
print('今天的日期:{}'.format(tday))  # 2023-06-01
# 打印七天后的日期
print('从今天向后推7天:{}'.format(tday + tdelta))  # 2023-06-08
# 总结:日期对象与timedelta之间的关系
"""
日期对象 = 日期对象 +/- timedelta对象
timedelta对象 = 日期对象 +/- 日期对象

验证:

"""
# 定义日期对象
now_date1 = datetime.date.today()
# 定义timedelta对象
lta = datetime.timedelta(days=6)
now_date2 = now_date1 + lta  # 日期对象 = 日期对象 +/- timedelta对象
print(type(now_date2))  # <class 'datetime.date'>
lta2 = now_date1 - now_date2  # timedelta对象 = 日期对象 +/- 日期对象
print(type(lta2))  # <class 'datetime.timedelta'>

总结年月日时分秒及时区问题


import datetime

dt_today = datetime.datetime.today()
dt_now = datetime.datetime.now()
dt_utcnow = datetime.datetime.utcnow()  # UTC时间与我们的北京时间cha ju

print(dt_today)
print(dt_now)
print(dt_utcnow)

random模块(随机)

随机验证码练习:

sys模块

介绍:

'''
 模块主要是针对与Python解释器相关的变量和方法,提供由解释器使用或维护的某些变量与解释器交互的函数访问接口,不是主机操作系统。
                                                                                                      '''

使用:

练习:

cmd.exe
powershell.exe
import sys

# print(sys.path)
print(sys.argv)  # ['D:/python26/day22/04 sys模块.py']

# python36 a.py

print(sys.argv[1])
print(sys.argv[2])
print(sys.argv[3])

try:
    res=sys.argv[2]
except Exception:
    pass