一:time模块/datetime模块
python 中表示时间的方式有以下三种:
1,时间戳(timestamp):表示的是从1970年1月1日00:00:00开始按秒计算的偏移量
2,格式化字符串表示的时间(format string)
3,结构化的时间(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模块:
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
二: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']