time模块

time模块一般用于不同时间格式的转换,在使用前用import time导入。在python中,通常有这几种方式来表示时间:

1.时间戳(timestamp):时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。返回浮点型

import time
timestamp = time.time()
print(timestamp,type(timestamp))
1560149134.940318 <class 'float'>

2.格式化时间:表示的是普通的字符串格式的时间。

format_time = time.strftime('%Y-%m-%d %X')
print(format_time,type(format_time))
2019-06-10 14:48:30 <class 'str'>

3.结构化时间(struct_time):struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天,夏令时)

print(time.localtime())    # 本地时区的结构化时间,处于东八区,比格林尼治时间早8小时
print(time.gmtime()) # 格林尼治的结构化时间
time.struct_time(tm_year=2019, tm_mon=6, tm_mday=10, tm_hour=14, tm_min=54, tm_sec=56, tm_wday=0, tm_yday=161, tm_isdst=0)
time.struct_time(tm_year=2019, tm_mon=6, tm_mday=10, tm_hour=6, tm_min=54, tm_sec=56, tm_wday=0, tm_yday=161, tm_isdst=0)

4.不同格式时间的转换

# 结构化时间转换为格式化时间格式(strftime)
struct_time = time.localtime()
format_time = time.strftime("%Y-%m-%d %X", struct_time)
print(format_time)
2019-06-10 15:03:01
 # 结构化时间转换为时间戳格式(mktime)
timestamp = time.mktime(struct_time)
print(timestamp)
1560150332.0
# 时间戳格式转换为结构化时间(localtime/gmtime)
timestamp = time.time()
struct_time = time.localtime(timestamp)
print(struct_time)
time.struct_time(tm_year=2019, tm_mon=6, tm_mday=10, tm_hour=15, tm_min=7, tm_sec=56, tm_wday=0, tm_yday=161, tm_isdst=0)
# 格式化时间转换为结构化时间(strptime)
struct_time = time.strptime('2019-6-10 15:00:00','%Y-%m-%d %X')
print(struct_time)
time.struct_time(tm_year=2019, tm_mon=6, tm_mday=10, tm_hour=15, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=161, tm_isdst=-1)

5.time.sleep(n):睡n秒,可用来暂停几秒

datetime模块

一般用于时间的加减

1.datetime.datetime.now()返回当前时间

import datetime
now_time = datetime.datetime.now()
print(now_time, type(now_time))
2019-06-10 15:27:15.639005 <class 'datetime.datetime'>

若要获取年月日,可以通过切分的方式获取,先要转换成字符串的格式。如获取2019-06-10

print(str(now_time).split()[0])
2019-06-10

2.时间的加减操作:不能指定月、年来加减

print(now_time + datetime.timedelta(3))    # 默认为天数,加三天
print(now_time + datetime.timedelta(-3)) # 减三天
print(now_time - datetime.timedelta(3)) # 减三天
print(now_time + datetime.timedelta(hours=1)) # 加1小时
print(now_time + datetime.timedelta(minutes=30)) # 加30分钟
print(now_time + datetime.timedelta(hours=5, minutes=21))
2019-06-13 15:16:18.804198
2019-06-07 15:16:18.804198
2019-06-07 15:16:18.804198
2019-06-10 16:16:18.804198
2019-06-10 15:46:18.804198
2019-06-10 20:37:18.804198

3.时间替换:相当于在当前时间基础上生成一个指定时间,不会改变原来的时间

now_time = datetime.datetime.now()
print(now_time.replace(year=2012, month=12, day=20))
print(now_time)
2012-12-20 15:26:34.608643
2019-06-10 15:26:34.608643

random模块

一般用来生成随机数

1.生成大于0小于1的小数

import random
print(random.random())
0.058421228800103364

2.生成大于等于m,小于等于n的整数(m<=n)

print(random.randint(1,3))

2

3.生成大于等于m,小于n的整数(m<n)

print(random.randrange(1,3))

1

4.生成大于m,小于n的小数(m<n)

print(random.uniform(1,3))

2.0484929224471413

5.获取列表中任意一个元素

lis = [1, 'a', [2,3,4],'bc']
print(random.choice(lis))
[2, 3, 4]

6.获取列表中n个元素组合(sample([list],n))

lis = [1, 'a', [2,3,4],'bc']
print(random.sample(lis,2))
[1, [2, 3, 4]]

7.将列表内的顺序打乱

lis = [1, 'a', [2,3,4],'bc']
random.shuffle(lis)
print(lis)
[[2, 3, 4], 'bc', 1, 'a']

最新文章

  1. 摇一摇js 实现
  2. Android 使用Socket进行通信(Android)
  3. nodejs生成多层目录和生成文件的通用方法
  4. WCF初探-24:WCF序列化和反序列化
  5. C#字符串的恒定性
  6. Newspaper Headline_set(upper_bound)
  7. Mdrill:来自阿里的多维快速查询工具
  8. Entity Framework 技术参考:http://kb.cnblogs.com/zt/ef/
  9. 关于android 双击事件
  10. html中的js监听付款按钮--触发ajax调用php后台--得到的json数据---交给安卓原生处理
  11. 201521123033《Java程序设计》第6周学习总结
  12. PAT 甲级真题题解(1-62)
  13. python爬虫之scrapy的pipeline的使用
  14. 我们如何用Go来处理每分钟100万复杂请求的场景
  15. [macOS] keychain的跳坑之旅!git拉取的权限问题
  16. Sprint 冲刺第三阶段第一天
  17. Python_TCP/IP简介
  18. Linux移植之移植步骤
  19. ef延迟加载不到导航属性问题
  20. HDU1556 Color the ball(差分数组)题解

热门文章

  1. ZOJ 1806 (小数高精度)
  2. 网络学习笔记:TCP/IP连网和Internet
  3. EL 隐含对象
  4. Windows10 Win键失灵的解决方法
  5. BS与CS的联系与区别。
  6. Java 过滤器、监听器、拦截器的区别
  7. python 视频逐帧保存为图片
  8. bzoj2558
  9. sql2000数据库置疑造成的原因以及如何解决置疑
  10. Java properties配置文件