三种时间表示

在Python中,通常有这几种方式来表示时间:

  • 时间戳(timestamp) :通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。
  • 元组(struct_time)   :运行time.localtime(),返回一个struct_time元组,共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天,夏令时)
  • 格式化的时间字符串(Format string):就是我们比较熟悉的格式,比如2018-12-25 11:12:30

主要掌握上面两张图,左图是时间三种表示方式的相互装换,右图是两种快捷方式

print(time.time())                     //时间戳
print(time.localtime()) //结构化时间(元组),默认参数为空的话,即当前时间
print(time.localtime(1473525444)) //如果有参数值,将这个时间戳转换为当前时区的struct_time
结果:1545890072.4237452
time.struct_time(tm_year=2018, tm_mon=12, tm_mday=27, tm_hour=13, tm_min=54, tm_sec=32, tm_wday=3, tm_yday=361, tm_isdst=0)
time.struct_time(tm_year=2016, tm_mon=9, tm_mday=11, tm_hour=0, tm_min=37, tm_sec=24, tm_wday=6, tm_yday=255, tm_isdst=0)

timestamp转化为struct_time:两种方法

print(time.localtime())                 //第一种localtime()上面已说明
print(time.gmtime()) //gmtime([secs]) 和localtime()方法类似,gmtime()方法是将一个时间戳转换为UTC时区(0时区)的struct_time
结果:
time.struct_time(tm_year=2018, tm_mon=12, tm_mday=27, tm_hour=14, tm_min=32, tm_sec=40, tm_wday=3, tm_yday=361, tm_isdst=0)
time.struct_time(tm_year=2018, tm_mon=12, tm_mday=27, tm_hour=6, tm_min=32, tm_sec=40, tm_wday=3, tm_yday=361, tm_isdst=0)

struct_time转化为timestamp:

print(time.mktime(time.localtime()))    //localtime()是结构化时间,再用mktime()转,就是时间戳了
print(time.time()) //等价于上面的
结果:1545892076.0
1545892076.7587585

struct_time转化为Format string(很常用):

strftime(format[, t]) : 把一个代表时间的元组或者struct_time(如由time.localtime()和time.gmtime()返回)转化为格式化的时间字符串。
              如果t未指定,将传入time.localtime()。如果元组中任何一个元素越界,ValueError的错误将会被抛出。
print(time.strftime("%Y-%m-%d %X", time.localtime()))    //"%Y-%m-%d %X"是自定义的格式,其中-可以随意变换
结果:2018-12-27 14:39:53

Format string转化为struct_time:

time.strptime(string[, format]),把一个格式化时间字符串转化为struct_time。实际上它和strftime()是逆操作。
print(time.strptime('2011-05-05 16:37:06', '%Y-%m-%d %X'))
结果:time.struct_time(tm_year=2011, tm_mon=5, tm_mday=5, tm_hour=16, tm_min=37, tm_sec=6, tm_wday=3, tm_yday=125, tm_isdst=-1)

还有右图的两个方法,提供了比较便利的两种方式:

asctime([t]) : 把一个表示时间的元组或者struct_time表示为这种形式:'Sun Jun 20 23:21:05 1993'。如果没有参数,将会将time.localtime()作为参数传入。
ctime([secs]) : 把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。如果参数未给或者为None的时候,将会默认time.time()为参数。它的作用相当于time.asctime(time.localtime(secs))。
print(time.asctime(time.localtime()))    //也可以不写time.localtime()   直接print(time.asctime())
print(time.ctime(time.time()))           //也可以不写time.time()    直接print(time.ctime()) 
结果:Thu Dec 27 15:32:49 2018
Thu Dec 27 15:32:49 2018

在这两个函数中,格式默认为:"%a %b %d %H:%M:%S %Y"。

(十一)time模块的更多相关文章

  1. 21、手把手教你Extjs5(二十一)模块Form的自定义的设计

    前面几节完成了模块Grid的自定义,模块Form自定义的过程和Grid的过程类似,但是要更复杂一些.先来设计一下要完成的总体目标. 1、可以有多个Form方案,对应于显示.新增.修改.审核.审批等功能 ...

  2. 11、手把手教你Extjs5(十一)模块界面的总体设计

    上一节中设计了一些模块自定义中用到的要素,为了直观起见,这一节先建立一个模块的主界面.看过我 模块管理常规功能自定义系统的设计与实现 博客的人应该会有所了解了.一个模块的主界面是一个Grid,在其上方 ...

  3. python3 第三十一章 - 模块

    1.什么是模块 如果从Python解释器退出并再次输入,您所做的定义(函数和变量)将丢失.因此,如果要编写一个稍长的程序,最好使用文本编辑器为解释器准备输入,并以该文件作为输入运行它.这称为创建脚本. ...

  4. Python学习(十一) —— 模块和包

    一.模块 一个模块就是一个包含了python定义和声名的文件,文件名就是模块名加上.py后缀. import加载的模块分为四个通用类别: 1.使用python编写的代码(.py文件) 2.已被编译为共 ...

  5. 十一 hashlib模块

    # 1.什么叫hash:hash是一种算法(3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法),该算法接受传入的 ...

  6. Python学习笔记十一:模块

    标准库(内置模块) time与datetime 模块 时间表示方式 1.时间戳 2.格式化的字符串 3.元组形式 时间戳就是一个秒数 x=time.time(),从1970年1月1日0时0分0秒到现在 ...

  7. jQuery 源码分析(十一) 队列模块 Queue详解

    队列是常用的数据结构之一,只允许在表的前端(队头)进行删除操作(出队),在表的后端(队尾)进行插入操作(入队).特点是先进先出,最先插入的元素最先被删除. 在jQuery内部,队列模块为动画模块提供基 ...

  8. python学习笔记:(十一)模块

    模块是指一个包含定义的函数和变量的文件,其后缀名为.py.模块可以被别的程序引用,并使用其中的函数等功能. 1.import语句 如果需要使用模块,只需要在新模块中导入模块.使用import关键字 如 ...

  9. Simulink仿真入门到精通(十一) 模块的封装

    当用户编写了自定义的S函数或者使用Simulink标准库中的模块搭建子系统后,可以通过封装为其设计显示外观,追加参数对话框. 封装是构建一个以对话框为接口的交互界面的过程,它将复杂的模块逻辑关系隐藏起 ...

  10. python语法学习第十一天--模块

    容器----------->数据的封装 函数----------->语句的封装 类-------------->方法和属性的封装 模块----------->程序本身  导入: ...

随机推荐

  1. 【Django 字段和相关参数补充】

    字段类型: 1.models.AutoField 自增列=int(11) 如果没有的话,默认会生成一个名称为id的列,如果要显示的自定义一个自增列,必须将给列设置为主键primary _key=Tru ...

  2. ⑥SpringCloud 实战:引入gateway组件,开启网关路由功能

    这是SpringCloud实战系列中第4篇文章,了解前面第两篇文章更有助于更好理解本文内容: ①SpringCloud 实战:引入Eureka组件,完善服务治理 ②SpringCloud 实战:引入F ...

  3. 七牛云上传视频(后端获取tolen)

    参照网址 https://developer.qiniu.com/kodo/sdk/1242/python #pip install qiniufrom qiniu import Auth #需要填写 ...

  4. 手把手教你:将 ClickHouse 集群迁至云上

    前言 随着云上 ClickHouse 服务完善,越来越多的用户将自建 ClickHouse 服务迁移至云上.对于不同数据规模,我们选择不同的方案: 对于数据量比较小的表,通常小于10GB 情况下,可以 ...

  5. Hive中自定义序列化器(带编码)

    hive SerDe的简介 https://www.jianshu.com/p/afee9acba686 问题 数据文件为文本文件,每一行为固定格式,每一列的长度都是定长或是有限制范围,考虑采用hiv ...

  6. 配置OSPF与BFD联动

    组网图形 OSPF与BFD联动简介 双向转发检测BFD(Bidirectional Forwarding Detection)是一种用于检测转发引擎之间通信故障的检测机制.BFD对两个系统间的.同一路 ...

  7. 关于MySQL索引知识与小妙招 — get get get

    一.索引基本知识 1.1 索引的优点 大大减少了服务器需要扫描的数据量,加快数据库的检索速度 帮助服务器避免排序和临时表 将随机io变成顺序io 1.2 索引的用处 速查找匹配WHERE子句的行 从c ...

  8. 302跳转导致的url劫持

    介绍一个   网站监测工具:iis7网站监测IIS7网站监控工具可以做到提前预防各类网站劫持,并且是免费在线查询,适用于各大站长,政府网站,学校,公司,医院等网站.它可以做到24小时定时监控,同时它可 ...

  9. 记录一下网上找到的别人写的angualr总结

    感觉写的不错,所以讲链接保存下来 https://www.jianshu.com/p/f0f81a63cbcb

  10. NET 5 Session、Cookie和Cache的使用

    1.Cookie public IConfiguration Configuration { get; } // This method gets called by the runtime. Use ...