time 模块主要包含各种提供日期、时间功能的类和函数。该模块既提供了把日期、时间格式化为字符串的功能,也提供了从字符串恢复日期、时间的功能。

在 Python 的交互式解释器中先导入 time 模块,然后输入 [e for e in dir(time) if not e.startswith('_')] 命令,即可看到该模块所包含的全部属性和函数:>>> [e for e in dir(time) if not e.startswith('_')]

['altzone', 'asctime', 'clock', 'ctime', 'daylight', 'get_clock_info', 'gmtime', 'localtime', 'mktime',

'monotonic',

'perf_counter', 'process_time', 'sleep', 'strftime', 'strptime', 'struct_time', 'time', 'timezone', 'tzname']

在 time 模块内提供了一个 time.struct_time 类,该类代表一个时间对象,它主要包含 9 个属性,每个属性的信息如下表所示:表 1 time.struct_time 类中各属性的含义字段名字段含义值

tm_year年如 2017、2018 等

tm_mon月如 2、3 等,范围为 1~12

tm_mday日如 2、3 等,范围为 1~31

tm_hour时如 2、3 等,范围为 0~23

tm_min分如 2、3 等,范围为 0~59

tm_sec秒如 2、3 等,范围为 0~59

tm_wday周周一为 0,范围为 0~6

tm_yday一年内第几天如 65,范围 1~366

tm_isdst夏时令0、1 或 -1

比如,Python 可以用 time.struct_time(tm_year=2018, tm_mon=5, tm_mday=2, tm_hour=8, tm_min=0, tm_sec=30, tm_wday=3, tm_yday=1, tm_isdst=0) 很清晰地代表时间。

此外,Python 还可以用一个包含 9 个元素的元组来代表时间,该元组的 9 个元素和 struct_time 对象中 9 个属性的含义是一一对应的。比如程序可以使用(2018, 5, 2, 8, 0, 30, 3, 1, 0)来代表时间。

在日期、时间模块内常用的功能函数如下:

time.asctime([t]):将时间元组或 struct_time 转换为时间字符串。如果不指定参数 t,则默认转换当前时间。

time.ctime([secs]):将以秒数代表的时间转换为时间宇符串。

time.gmtime([secs]):将以秒数代表的时间转换为 struct_time 对象。如果不传入参数,则使用当前时间。

time.localtime([secs]):将以秒数代表的时间转换为代表当前时间的 struct_time 对象。如果不传入参数,则使用当前时间。

time.mktime(t):它是 localtime 的反转函数,用于将 struct_time 对象或元组代表的时间转换为从 1970 年 1 月 1 日 0 点整到现在过了多少秒。

time.perf_counter():返回性能计数器的值。以秒为单位。

time.process_time():返回当前进程使用 CPU 的时间。以秒为单位。

time.sleep(secs):暂停 secs 秒,什么都不干。

time.strftime(format[, t]):将时间元组或 struct_time 对象格式化为指定格式的时间字符串。如果不指定参数 t,则默认转换当前时间。

time.strptime(string[, format]):将字符串格式的时间解析成 struct_time 对象。

time.time():返回从 1970 年 1 月 1 日 0 点整到现在过了多少秒。

time.timezone:返回本地时区的时间偏移,以秒为单位。

time.tzname:返回本地时区的名字。

下面程序示范了 time 棋块的功能函数:import time

# 将当前时间转换为时间字符串

print(time.asctime())

# 将指定时间转换时间字符串,时间元组的后面3个元素没有设置

print(time.asctime((2018, 2, 4, 11, 8, 23, 0, 0 ,0))) # Mon Feb 4 11:08:23 2018

# 将以秒数为代表的时间转换为时间字符串

print(time.ctime(30)) # Thu Jan 1 08:00:30 1970

# 将以秒数为代表的时间转换为struct_time对象。

print(time.gmtime(30))

# 将当前时间转换为struct_time对象。

print(time.gmtime())

# 将以秒数为代表的时间转换为代表当前时间的struct_time对象

print(time.localtime(30))

# 将元组格式的时间转换为秒数代表的时间

print(time.mktime((2018, 2, 4, 11, 8, 23, 0, 0 ,0))) # 1517713703.0

# 返回性能计数器的值

print(time.perf_counter())

# 返回当前进程使用CPU的时间

print(time.process_time())

#time.sleep(10)

# 将当前时间转换为指定格式的字符串

print(time.strftime('%Y-%m-%d %H:%M:%S'))

st = '2018年3月20日'

# 将指定时间字符串恢复成struct_time对象。

print(time.strptime(st, '%Y年%m月%d日'))

# 返回从1970年1970年1月1日0点整到现在过了多少秒。

print(time.time())

# 返回本地时区的时间偏移,以秒为单位

print(time.timezone) # 在国内东八区输出-28800

运行上面程序,可以看到如下输出结果:Fri Feb 22 11:28:39 2019

Mon Feb 4 11:08:23 2018

Thu Jan 1 08:00:30 1970

time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=30, tm_wday=3, tm_yday=1,

tm_isdst=0)

time.struct_time(tm_year=2019, tm_mon=2, tm_mday=22, tm_hour=3, tm_min=28, tm_sec=39, tm_wday=4, tm_yday=53,

tm_isdst=0)

time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=0, tm_sec=30, tm_wday=3, tm_yday=1,

tm_isdst=0)

1517713703.0

0.0

0.140625

2019-02-22 11:28:39

time.struct_time(tm_year=2018, tm_mon=3, tm_mday=20, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=79,

tm_isdst=-1)

1550806119.4960592

-28800

time 模块中的 strftime() 和 strptime() 两个函数互为逆函数,其中 strftime() 用于将 struct_time 对象或时间元组转换为时间字符串;而 strptime() 函数用于将时间字符串转换为 struct_time 对象。这两个函数都涉及编写格式模板,比如上面程序中使用 %Y 代表年、%m 代表月、%d 代表日、%H 代表时、%M 代表分、%S 代表秒。这两个函数所需要的时间格式字符串支持的指令如下表所示:指

令含义

%a本地化的星期几的缩写名,比如 Sun 代表星期天

%A本地化的星期几的完整名

%b本地化的月份的缩写名,比如 Jan 代表一月

%B本地化的月份的完整名

%c本地化的日期和时间的表示形式

%d代表一个月中第几天的数值,范固: 01~31

%H代表 24 小时制的小时,范围:00~23

%I代表 12 小时制的小时,范围:01~12

%j一年中第几天,范围:001~366

%m代表月份的数值,范围:01~12

%M代表分钟的数值,范围:00~59

%p上午或下午的本地化方式。当使用 strptime() 函数并使用 %I 指令解析小时时,%p 只影响小时字段

%S代表分钟的数值,范围:00~61。该范围确实是 00~61,60 在表示闰秒的时间戳时有效,而 61 则是由于一些历史原因造成的

%U代表一年中表示第几周,以星期天为每周的第一天,范围:00~53。在这种方式下,一年中第一个星期天被认为处于第一周

。当使用 strptime() 函数解析时间字符串时,只有同时指定了星期几和年份该指令才会有效

%w代表星期几的数值,范围:0~6,其中 0 代表周日

%W代表一年小第几周,以星期一为每周的第一天,范围:00~53。在这种方式下,一年中第一个星期一被认为处于第一周

。当使用 strptime() 函数解析时间字符串时,只有同时指定了星期几和年份该指令才会有效

%x本地化的日期的表示形式

%X本地化的时间的表示形式

%y年份的缩写,范围:00~99,比如 2018 年就简写成 18

%Y年份的完整形式。如 2018

%z显示时区偏移

%Z时区名(如果时区不行在,则显示为空)

%%用于代表%符号

python中time模块详解_Python time模块详解相关推荐

  1. python中装饰器的作用_Python装饰器详解,详细介绍它的应用场景

    装饰器的应用场景附加功能 数据的清理或添加:函数参数类型验证 @require_ints 类似请求前拦截数据格式转换 将函数返回字典改为 JSON/YAML 类似响应后篡改为函数提供额外的数据 moc ...

  2. python中open函数打开文件_Python open函数详解:打开指定文件

    掌握了各种操作目录字符串或目录的函数之后,接下来可以准备读写文件了.在进行文件读写之前,首先要打开文件. Python 提供了一个内置的 open() 函数,该函数用于打开指定文件. open() 函 ...

  3. python中怎么画一个机器猫_Python turtle模块实战:绘制机器猫的主体

    我们在上一节教程中已经绘制了机器猫的头部,本节教程我们绘制机器猫的主干. body()函数 下面我们定义 body() 函数,它用来绘制机器猫的身体.该函数先绘制一个蓝色的矩形表示身体,然后再绘制一个 ...

  4. [转载] python中for语句用法_详解Python中for循环的使用_python

    参考链接: 在Python中将else条件语句与for循环一起使用 这篇文章主要介绍了Python中for循环的使用,来自于IBM官方网站技术文档,需要的朋友可以参考下 for 循环 本系列前面 &q ...

  5. python中for语句用法_详解Python中for循环的使用_python

    这篇文章主要介绍了Python中for循环的使用,来自于IBM官方网站技术文档,需要的朋友可以参考下 for 循环 本系列前面 "探索 Python,第 5 部分:用 Python 编程&q ...

  6. python中字符串切片取奇数_Python中的字符串切片(截取字符串)的详解

    Python中的字符串切片(截取字符串)的详解 字符串索引示意图 字符串切片也就是截取字符串,取子串 Python中字符串切片方法 字符串[开始索引:结束索引:步长] 切取字符串为开始索引到结束索引- ...

  7. python中randint是什么意思_python中random.randint和random.randrange的区别详解

    在python中,通过导入random库,就能使用randint 和 randrange 这两个方法来产生随机整数.那这两个方法的区别在于什么地方呢?让我们一起来看看! 区别: randint 产生的 ...

  8. Python中第三方库Requests库的高级用法详解

    Python中第三方库Requests库的高级用法详解 虽然Python的标准库中urllib2模块已经包含了平常我们使用的大多数功能,但是它的API使用起来让人实在感觉不好.它已经不适合现在的时代, ...

  9. python数组相减_对Python 中矩阵或者数组相减的法则详解

    对Python 中矩阵或者数组相减的法则详解 最近在做编程练习,发现有些结果的值与答案相差较大,通过分析比较得出结论,大概过程如下: 定义了一个计算损失的函数: def error(yhat,labe ...

  10. python中requests库的用途-python中requests库session对象的妙用详解

    在进行接口测试的时候,我们会调用多个接口发出多个请求,在这些请求中有时候需要保持一些共用的数据,例如cookies信息. 妙用1 requests库的session对象能够帮我们跨请求保持某些参数,也 ...

最新文章

  1. 使用XML作为配置表,WinForm程序读取配置表来动态显示控件
  2. VTK:InfoVis之XGMLReader
  3. Linux定时任务Crontab详解_定时备份
  4. Hadoop hdfs配置
  5. Android APK的加固方法
  6. CyAPI.lib(CyAPI.obj) : error LNK2019: 无法解析的外部符号...
  7. mac下nvm_Mac OS 使用 nvm 管理 node 与 npm 版本
  8. mysqldump 定时备份数据(全量)
  9. react的导出是怎么实现的_从零开始开发一个 React
  10. WebSocket详解(一):初步认识WebSocket技术
  11. php统计大写字母个数,C++_C++统计中英文大小写字母、数字、空格及其他字符个数的方法,本文实例讲述了C++统计中英文 - phpStudy...
  12. 看到这个密码,我就笑了
  13. 【网络教程】苹果MACCMS10怎样设置伪静态
  14. HTTP/2 协议规范
  15. dell服务器idrac配置
  16. 李飞飞:我更像物理学界的科学家,而不是工程师|深度学习崛起十年
  17. erc20根据合约地址获取所有交易记录
  18. 搭建个人的Leanote云笔记本
  19. 云队友丨拼多多的两个世界
  20. 层次分析法分析国家综合国力

热门文章

  1. TopLink JPA
  2. 处理字符串_12_按照指定的位置截取字符
  3. 可以发外链的网站_企业网站上线后,何提升网站排名?
  4. 训练FCN时遇到的问题总结
  5. Linux驱动编程 step-by-step (八) 阻塞型字符设备驱动
  6. 判断泛型的值是否为default(T)
  7. Linux+Tomcat+Jdk1.8+jenkins环境搭建
  8. 高效运维最佳实践:如何做好On-call和事故响应?
  9. Oracle数据库学习(一)安装和简单使用
  10. C# log4net 的配置