常用模块:

time:

分为三种格式:

  • 1.时间戳:从1970年1月1日0点0分0秒到现在经过的秒数

    • 用于时间间隔的计算
import time
print(time.time())
  • 2.字符串显示时间

    • 用于展示时间,更符合人类认知
print(time.strftime('%Y-%m-%d %H:%M:%S %p'))
# 2020-08-11 19:45:05 PM print(time.strftime('%Y-%m-%d %X'))
# 2020-08-11 21:18:19 print(time.asctime())
# Wed Aug 12 21:20:31 2020
  • 3.结构化显示时间

    • 用于单独获取时间某一部分
print(time.localtime())

# time.struct_time(tm_year=2020, tm_mon=8, tm_mday=11, tm_hour=21,tm_min=30, tm_sec=18, tm_wday=1, tm_yday=224, tm_isdst=0)

# 显示格里尼治标准时间,比中国慢8个小时,中国是东8区
print(time.gmtime()) # 9个字段:
# 年份,月份,日份,小时,分钟,秒, 星期(从0-6,0表示周一),一年的第几天,是否是夏令时
  • 若要显示单独某个字段
# 显示年份
print(time.localtime().tm_year)
# 2020 # 显示当前是一年中的第几天
print(time.localtime().tm_yday)
# 224

三种格式时间转换

  • 时间戳转结构化
tp_time = time.time()
pritn(time.localtime(tp_time))
# 默认是当前时区时间,也可自定义时间戳 print(time.localtime(666666666))
# time.struct_time(tm_year=1991, tm_mon=2, tm_mday=16, tm_hour=9, tm_min=11, tm_sec=6, tm_wday=5, tm_yday=47, tm_isdst=0) # 以格里尼治标准时间为基数
print(time.gmtime(666666666))
# time.struct_time(tm_year=1991, tm_mon=2, tm_mday=16, tm_hour=1, tm_min=11, tm_sec=6, tm_wday=5, tm_yday=47, tm_isdst=0)
  • 结构化转时间戳
st_time = time.localtime()
print(time.mktime(st_time))
  • ​ 结构化转字符串
st_time = time.localtime()
pritn(time.strftime('%Y-%m-%d %H:%M:%S',st_time))
# 2020-08-12 20:43:46
# 需要两个参数,前面是格式,后面是结构时间参数
  • 字符串转结构化
print(time.strptime('2020-08-12 20:43:46','%Y-%m-%d %H:%M:%S')
# 两个参数的格式必须要对应
  • time模块字符串格式无法直接转换成时间戳,需要通过结构化时间转换

    • 时间戳转格式化字符串
    # 首先将时间戳转换为结构化,再转换为格式化字符串
    s_time = time.localtime(666666666)
    print(time.strftime('%Y-%m-%d %H:%M:%S',s_time)) # 1991-02-16 09:11:06
    • 格式化字符串转时间戳
    # 首先将格式化字符串转结构化,再将结构化转时间戳
    struct_time = time.strptime('2020-8-13 13:12:20','%Y-%m-%d %H:%M:%S')
    print(time.mktime(struct_time)) # 1597295540.0

datetime:

  • 格式化显示时间
# 当前时区时间
print(datetime.datetime.now())
# 2020-08-12 21:21:56.192434 # 格林尼治时间
print(datetime.datetime.utcnow())
# 2020-08-12 13:21:56.209435
  • 时间运算
# 显示三天后
print(datetime.datetime.now() + datetime.timedelta(days=3)
# 2020-08-15 10:11:23.132590 # 显示三天前
print(datetime.datetime.now() + datetime.timedalta(days=-3)
print(datetime.datetime.now() - datetime.timedelta(days=3)
# 2020-08-09 10:14:34.984563 # 显示三年后
print(datetime.datetime.now() + datetime.timedelta(days = 365*3))
# 2023-08-12 10:17:01.263930
  • 时间戳转格式化字符串时间
print(datetime.datetime.fromtimestamp(666666666))
# 1991-02-16 09:11:06

random:

  • 此模块提供了伪随机数获取相关的方法
  • random.random():获取[0,1.0)范围内的浮点数
import random
print(random.random())
  • random.randint(a,b):获取[a,b]范围内的一个整数
print(random.randint(1,3))
# 1,2,3都能取到
  • random.uniform(a,b):获取[a,b]范围内的浮点数
print(random.uniform(1.1,1.2))
  • random.randrange(start,stop[,step]):获取[star,stop)之间的整数,可以指定步长
print(random.randrange(1,4))
# 获取[1,4)之间的整数,可以获取到1,2,3 print(random.randrange(1,4,2))
# 可以获取到1,3
  • random.choice(seq):从非空序列seq返回一个随机元素。如果seq为空,则报错
li = [1,2,3,'a','b','c']
print(random.choice())
# 返回结果为列表内的一个随机元素
  • random.sample(x,k):从x中随机抽取k个数据,组成列表返回
li = [1,2,3,'a','b','c']
print(random.sample(li,3))
# 取列表内随机三个元素,组成列表返回
  • random.shuffle(x):混洗。将参数指定的数据中的元素打乱。参数必须是可变的数据类型
random.shuffle(li)
print(li) # random.shuffle()打乱的是原对象的顺序
  • 应用:随机验证码
import random
def make_code(size=6):
res = ''
for i in range(size):
num = str(random.randint(0,9)) # 随机产生一个整数
st1 = chr(random.randint(65,90)) # 获取65-90之间的的整数,通过chr函数转换成大写字母
st2 = chr(random.randint(97,122)) # 获取一个随机小写字母
res += random.choice([num,st1,st2]) # 每次取得其中一个字符,与res累加
return res print(make_code())

最新文章

  1. ubuntu 13.10 monodevelop3 安装
  2. osg设置相机参数,包括初始位置
  3. sqlserver 解析Json字符串
  4. django internal search
  5. Python:操作文件
  6. Javascript核心概述 - 深入了解javascript
  7. 从bug中学习怎么写代码
  8. z-index 所遇问题
  9. SQLSERVER执行时间统计工具SQLQueryStress
  10. xtrabackup 链接不上MySQL的问题
  11. ZOJ 3203 Light Bulb - 求导求最大值
  12. chrome谷歌浏览器开发者工具-网络带宽控制
  13. JAVA数组和集合谁是儿子
  14. net core 部署到windows 服务
  15. CISCO ACL配置
  16. vue2.0获取自定义属性的值
  17. Day 1: ASP.NET and JavaScript Jan.16th Trying
  18. JavaScript 装饰者模式(this运用)
  19. c++之数组形参
  20. 20-java 对象链表空没空呢

热门文章

  1. docker注册&打包
  2. python常用os模块
  3. 《Mybatis进阶》肝了30天专栏文章,整理成册,免费获取!!!
  4. vulnhub靶机之Quaoar
  5. tf.split函数的用法(tensorflow1.13.0)
  6. 空间向量变换,以及OpenGL的glm库简单应用
  7. java经典算法40题-附带解决代码
  8. Kafka 【的这些原理你知道吗】
  9. C++实现职工管理系统(中)
  10. 中秋礼物!开源即时通信GGTalk安卓版全新源码!