一:time模块/datetime模块
python 中表示时间的方式有以下三种:
1,时间戳(timestamp):表示的是从1970年1月1日00:00:00开始按秒计算的偏移量
2,格式化字符串表示的时间(format string)
3,结构化的时间(struct_time)
3种时间格式的相互转换:
time.strftime(format[, t]):t未指定,传入time.localtime()作为默认参数
time.mktime(t):接收一个struct_time,返回一个时间戳
import time
print(time.time()) #时间戳:1523176424.5455265
print(time.strftime('%Y-%m-%d %X %p')) #2018-04-08 20:08:26 PM
print(time.strftime('%Y/%m/%d %H:%M:%S %p')) #2018/04/08 20:08:26 PM
print(time.localtime())
#time.struct_time(tm_year=2018, tm_mon=4, tm_mday=8, tm_hour=16, tm_min=33, tm_sec=44, tm_wday=6, tm_yday=98, tm_isdst=0)
# (年,月,日,时,分,秒,星期/星期天为6,一年中的第几天,是否是夏令时)
print(time.localtime().tm_year) #2018
#UTC 世界标准时间 中国在东八区即 UTC+8
print(time.gmtime())
#time.struct_time(tm_year=2018, tm_mon=4, tm_mday=8, tm_hour=8, tm_min=40, tm_sec=26, tm_wday=6, tm_yday=98, tm_isdst=0)
#格式化字符串表示时间的格式
'''
%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),星期天为星期的开始 星期天为 0
%W 一年中的星期数(00 - 53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% % 号本身
'''
print(time.ctime()) #Sun Apr 8 20:15:42 2018 其参数为默认参数 seconds = None
time.sleep(5) #睡眠5秒
print(time.asctime()) #Sun Apr 8 20:45:07 2018 默认参数为 p_tuple = None 没有参数时,将会把time.localtime()作为参数传入
datetime模块:
①datetime.date: 是指年月日构成的日期
新建一个date对象,既可以直接调用datetime.date.today(),也可以直接向datetime.date()传值
②datetime.time: 是指时分秒微秒构成的一天24小时中的具体时间
③datetime.datetime: 上面两个合在一起,既包含时间又包含日期
datetime.datetime.today() datetime.datetime.now([tz])
④datetime.timedelta: 时间间隔对象(timedelta)
import time
import datetime
print(datetime.date.fromtimestamp(time.time())) #2018-04-08
print(datetime.datetime.now()) #2018-04-08 21:02:24.517133 当前时间
print(datetime.datetime.now() + datetime.timedelta(3)) #2018-04-11 21:02:24.517133 3天后的这个时间
print(datetime.datetime.now() + datetime.timedelta(-3)) #2018-04-05 21:02:24.517133 3天前的这个时间
print(datetime.datetime.now() + datetime.timedelta(hours=3)) #2018-04-09 00:02:24.517133 3小时后
print(datetime.datetime.now() + datetime.timedelta(hours=-3)) #2018-04-08 18:02:24.517133 3小时前
print(datetime.datetime.now() + datetime.timedelta(minutes=30)) #30分钟后
print(datetime.datetime.now() + datetime.timedelta(minutes=-30)) #30分钟前
print(datetime.datetime.now() + datetime.timedelta(seconds=30)) #2018-04-08 21:02:54.517133 30秒后
print(datetime.datetime.now() + datetime.timedelta(seconds=-30)) #2018-04-08 21:01:54.517133 30秒前
#时间替换
a_time = datetime.datetime.now()
print(a_time.replace(year=2008,hour=6)) #2008-04-08 06:11:28.757450
# 判断一给定的字符串格式日期有没有超过活动的截止日期(截止日期为每个月的第三个星期六)
def checktime(data):
year = int(data[:4])
month = int(data[4:6])
day = int(data[6:])
weekday = int(datetime.datetime(year,month,1).strftime('%w')) # 0-6 星期天 一 二 。。
# 本月第三周的星期六
target_day = 6 - weekday + 15
if day <= target_day:
return True
else:
return False
print(checktime('20180915'))
二:random模块
import random
print(random.random()) #(0,1) 0.5619027547179264
print(random.randint(1,9)) #[1,9]之间的整数 6
print(random.randrange(1,9)) #[1,9)之间的整数,顾头不顾尾 7
print(random.uniform(1,9)) #(1,9)之间的小数 7.041863989249209
print(random.choice('abcd')) #b 其参数为一个序列 表示从参数序列中随机选取一个元素
print(random.choice([1,2,3,'a'])) #2
print(random.sample('abcdef',2)) #任意取两个字符组成一个列表
print(random.sample([1,'a',2,3,'c'],2)) #任意取列表中的两个元素组成一个新列表
a= ['a','b','c','d']
random.shuffle(a) #打乱列表的顺序,相当于“洗牌”
print(a) #['c', 'a', 'b', 'd']
import random
#随机产生n位由大小写字母与数字组成的验证码
def make_code(n):
res = ''
for i in range(n):
s1 = str(random.randint(0,9)) #随机产生一个数字
s2 = chr(random.randint(65,90)) #随机产生一个大写字母
s3 = chr(random.randint(97,122)) #随机产生一个小写字母
res += random.choice([s1,s2,s3]) #从三者中随机选取一个加入字符串res中
return res
print(make_code(9)) #8w9ldrFob
三:sys模块
import sys
print(sys.version) #获取Python解释程序的版本信息 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:54:40) [MSC v.1900 64 bit (AMD64)]
print(sys.argv) #命令行参数List,第一个元素是程序本身路径 ['E:/python/test2.py']
print(sys.platform) #返回操作系统平台名称 win32
print(sys.path) #返回模块的搜索路径
#['E:\\python', 'E:\\python3\\python36.zip', 'E:\\python3\\DLLs', 'E:\\python3\\lib', 'E:\\python3', 'E:\\python3\\lib\\site-packages']