time模块

time模块是很多人最早接触到的模块,像time.sleep(x)好像随处可见,但是time模块里面的其他方法呢?下面一起看一下time模块。

在Python中一般用这3种方式表示时间:

1.时间戳,包括time()等函数

2.格式化的时间字符  包括asctime()等函数

3.时间元组    包括localtime()等函数

分别举例如下:

print(time.time())
>>> 1553149608.6831224

time得到的时间单位是秒,那么这个秒是怎么来的呢?这是从1970年1月1日0点0分0秒开始计时,一直到现在经历的秒数(不信可以自己算一下)。为什么是1970?这一年发生了很多大事,比如Unix诞生了。

print(time.localtime())
>>> time.struct_time(tm_year=2019, tm_mon=3, tm_mday=21, tm_hour=14, tm_min=27, tm_sec=24, tm_wday=3, tm_yday=80, tm_isdst=0)
#从左到右依次是当前时间的年,月,日,时,分,秒,一周中第几天,一年中第几天,夏令时 print(time.localtime(time.time())) >>> time.struct_time(tm_year=2019, tm_mon=3, tm_mday=21, tm_hour=14, tm_min=27, tm_sec=24, tm_wday=3, tm_yday=80, tm_isdst=0)

这里得到的是一个元组,两个print得到的结果是一样的,说明localtime中有一个默认参数,就是time.time(),你也可以吧time.time()拿到的时间(1553149608.6831224)当做参数,得到的结果也是一样的。

print(time.gmtime())
>>> time.struct_time(tm_year=2019, tm_mon=3, tm_mday=21, tm_hour=6, tm_min=27, tm_sec=24, tm_wday=3, tm_yday=80, tm_isdst=0)

gmtime和localtime的用法是一样的,结果似乎也一样,但仔细一看发现tm_hour好像少8,这是为什么呢?因为我所在的中国位于东8区,gmtime获取的时间是零度经线的时间,没记错的话,应该是英国的格林尼治天文台所在的经度,也叫本初子午线嘛。

print(time.mktime(time.localtime()))
>>>1553150685.0

mktime可以把得到的元组转化成时间戳。

print(time.asctime())
>>>Thu Mar 21 14:48:48 2019 print(type(time.asctime()))
>>><class 'str'> print(time.asctime(time.localtime()))
>>>Thu Mar 21 14:48:48 2019

asctime可以把时间元组转化成一个固定格式的字符串,默认参数就是time.localtime拿到的元组。

print(time.ctime())
>>>Thu Mar 21 14:53:36 2019 print(time.ctime(time.time()))
>>>Thu Mar 21 14:53:36 2019

ctime和asctime拿到的结果一样,但是参数是时间戳,默认就是time.time()

print(time.strftime('%Y-%m-%d %H:%M:%S'))
>>>2019-03-21 15:00:50 print(time.strftime('%Y-%m-%d %X'))
>>>2019-03-21 15:00:50 print(time.strptime('2019-03-21 14:57:45','%Y-%m-%d %X'))
>>>time.struct_time(tm_year=2019, tm_mon=3, tm_mday=21, tm_hour=14, tm_min=57, tm_sec=45, tm_wday=3, tm_yday=80, tm_isdst=-1)

strftime可以按一定的规则,将时间元组转化成格式化字符串形式,如果没有时间元组参数,就默认为localtime。前面两个print结果是一样的,就是说%X可以代替%H:%M:%S,这是一种简写。strptime和strftime作用是相反的,注意格式要和输入的格式化字符串一致,不然就会报错了,format默认为:"%a %b %d %H:%M:%S %Y"。

到这里,上面三种时间的转化关系已经出来了:

sleep就不用讲了,就是线程推迟指定时长后运行,单位是秒,正常理解为等待就行,time模块基本就这些内容了。

最新文章

  1. ASP.NET MVC实现权限控制
  2. iOS 限制TextField输入长度(标准)
  3. JavaScript学习笔记-用于模式匹配的String方法
  4. LightOJ1018 Brush (IV)(状压DP)
  5. 数论 UVA 11388
  6. ASP.NET学习笔记1—— MVC
  7. 调用数据库函数CallableStatement
  8. Equals Finalize GetHashCode GetType MemberwiseClone ReferenceEquals ToString String.IsInterned
  9. JQuery 如何选择带有多个class的元素
  10. getComputedStyle(and currentStyle)
  11. Android -- 浮动组建
  12. android136 360 拖拽
  13. Memcached原理
  14. Linux系统监控
  15. 跨平台C/C++集成开发环境-Code::Blocks-内置GCC
  16. [POI2008]枪战Maf
  17. 记一次【模拟点击】,WinForm小软件开发过程
  18. 学习 JavaScript (六)核心概念:函数
  19. 创建一个dynamics 365 CRM online plugin (五) - Images in Plugin
  20. CNVD-C-2019-48814 漏洞

热门文章

  1. asp:GridView控件使用FindControl方法获取控件的问题
  2. labview下载地址
  3. unity Camera第一人称移动,3中方法实现
  4. bower 基础认识
  5. jetbrains 系列 webstorm、IntelliJ Idea 免费激活方法免激活码
  6. vue 组件的定义
  7. 通过命令行操作MYSQL的方法 以及导入大的SQL备份文件
  8. centos 踩坑集锦
  9. Round A - Kick Start 2019
  10. Nginx服务器 配置 https