python时间time模块处理大全


Posted in Python onOctober 25, 2020

前言

在平常的代码中,我们常常需要与时间打交道。在Python中,与时间处理有关的模块就包括:time,datetime以及calendar。这篇文章,主要讲解time模块。

在开始之前,首先要说明这几点:

  1. 在Python中,通常有这几种方式来表示时间:时间戳 (给机器看的)、格式化的时间字符串(给人看的) 、struct_time元组机构化时间(计算用的)。
  2. UTC(Coordinated Universal Time,世界协调时)亦即格林威治天文时间,世界标准时间。在中国为UTC+8。DST(Daylight Saving Time)即夏令时。
  3. 时间戳(timestamp)的方式:通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。返回时间戳方式的函数主要有time(),clock()等。
  4. 元组(struct_time)方式:struct_time元组共有9个元素,返回struct_time的函数主要有gmtime(),localtime(),strptime()。

时间格式(时间戳)

time.time()函数获取的是Unix时间戳。

返回的是一个float类型的数值。

import time
t1 = time.time()
print(t1, type(t1))

睡眠 time.sleep

time.sleep(2) # 睡眠2秒

格式化时间

import time
print(time.strftime('%Y-%m-%d %H:%M:%S'))
2019-11-27 20:49:36

%y
print(time.strftime('%y-%m-%d %H:%M:%S'))
19-11-27 20:50:27

%c
 print(time.strftime('%c'))
Wed Nov 27 20:51:20 2019
格式 含义 备注
%a 本地(locale)简化星期名称
%A 本地完整星期名称
%b 本地简化月份名称
%B 本地完整月份名称
%c 本地相应的日期和时间表示
%d 一个月中的第几天(01 - 31)
%H 一天中的第几个小时(24小时制,00 - 23)
%I 第几个小时(12小时制,01 - 12)
%j 一年中的第几天(001 - 366)
%m 月份(01 - 12)
%M 分钟数(00 - 59)
%p 本地am或者pm的相应符
%S 秒(01 - 61)
%U 一年中的星期数。(00 - 53星期天是一个星期的开始。)第一个星期天之前的所有天数都放在第0周。
%w 一个星期中的第几天(0 - 6,0是星期天)
%W 和%U基本相同,不同的是%W以星期一为一个星期的开始。
%x 本地相应日期
%X 本地相应时间
%y 去掉世纪的年份(00 - 99)
%Y 完整的年份
%Z 时区的名字(如果不存在为空字符)
%% ‘%'字符
  1. “%p”只有与“%I”配合使用才有效果。
  2. 文档中强调确实是0 - 61,而不是59,闰年秒占两秒(汗一个)。
  3. 当使用strptime()函数时,只有当在这年中的周数和天数被确定的时候%U和%W才会被计算。

结构化时间(struct_time)

#结构化时间

#localtime
struct_time = time.localtime()
print(struct_time) 
#time.struct_time(tm_year=2020, tm_mon=10, tm_mday=8, tm_hour=15, tm_min=7, tm_sec=53, tm_wday=0, tm_yday=281, tm_isdst=0)
print(struct_time.tm_year) #2018

#gmtime
struct_time1 = time.gmtime()
print(struct_time1) 
#time.struct_time(tm_year=2020, tm_mon=10, tm_mday=8, tm_hour=15, tm_min=7, tm_sec=53, tm_wday=0, tm_yday=281, tm_isdst=0)
print(struct_time1.tm_year) #2020

索引(Index) 属性(Attribute) 值(Values)
0 tm_year(年) 比如2011
1 tm_mon(月) 1 - 12
2 tm_mday(日) 1 - 31
3 tm_hour(时) 0 - 23
4 tm_min(分) 0 - 59
5 tm_sec(秒) 0 - 61
6 tm_wday(weekday) 0 - 6(0表示周日)
7 tm_yday(一年中的第几天) 1 - 366
8 tm_isdst(是否是夏令时) 默认为-1

转换

它们之间的转化如图所示:

python时间time模块处理大全

要了解更多,请参考time模块的官方文档 http://docs.python.org/library/time.html。

结构化时间转时间戳mktime

t = time.time()
print(t)  #1538982828.2859974
print(time.localtime(t))  
#time.struct_time(tm_year=2018, tm_mon=10, tm_mday=8, tm_hour=15, tm_min=13, tm_sec=3, tm_wday=0, tm_yday=281, tm_isdst=0)

print(time.gmtime(t))    
#time.struct_time(tm_year=2018, tm_mon=10, tm_mday=8, tm_hour=7, tm_min=13, tm_sec=3, tm_wday=0, tm_yday=281, tm_isdst=0)

print(time.mktime(time.localtime()))  #1538982958.0

结构化时间转字符串strftime

print(time.strftime('%m/%d/%y %H:%M:%S',time.localtime(3000000000)))  
#01/24/65 13:20:00

字符串转结构化时间strptime

t = time.time()
t = time.strptime('2000-12.31','%Y-%m.%d')
print(t)  
#time.struct_time(tm_year=2000, tm_mon=12, tm_mday=31, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yday=366, tm_isdst=-1)

print(time.strftime('%m/%d/%y %H:%M:%S',time.localtime(3000000000)))  #01/24/65 13:20:00

总结

asctime([tuple])

将时间元组(默认为本地时间)格式转换为字符串形式。接受一个时间元组,其默认值为localtime()返回值

clock()

返回当前程序的cpu执行时间。unix系统始终返回全部运行时间;而windows从第二次开始都是以第一次调用此函数时的时间戳作为基准,而不是程序开始时间为基准。不接受参数。

ctime(seconds)

将时间戳转换为字符串。接受一个时间戳,其默认值为当前时间戳。等价于asctime(localtime(seconds))

print(time.asctime())  # Mon Oct 8 15:21:02 2018
print(time.asctime(time.localtime()))  # Mon Oct 8 15:21:02 2018
print(time.asctime(time.localtime(2000000000)))  # Wed May 18 11:33:20 2033
print(time.ctime())   # Mon Oct 8 15:21:02 2018
print(time.ctime(2000000000))  # Wed May 18 11:33:20 2033

gmtime([seconds])

将时间戳转换为UTC时间元组格式。接受一个浮点型时间戳参数,其默认值为当前时间戳。

localtime([seconds])

将时间戳转换为本地时间元组格式。接受一个浮点型时间戳参数,其默认值为当前时间戳。

mktime(tuple)

将本地时间元组转换为时间戳。接受一个时间元组,必选。

sleep(seconds)

延迟一个时间段,接受整型、浮点型。

time()

返回当前时间戳,浮点数形式。不接受参数

tzset()

改变本地时区。

strptime(string, format)

将指定格式的时间字符串解析为时间元组,strftime()的逆向过程。接受字符串,时间格式2个参数,都是必选。示例:

time.strptime('2015-08-05 22:08:06', '%Y-%m-%d %X')
time.struct_time(tm_year=2015, tm_mon=8, tm_mday=5, tm_hour=22, tm_min=8, tm_sec=6

strftime(format[, tuple])

将时间元组以指定的格式转换为字符串形式。接受字符串格式化串、时间元组。时间元组为可选,默认为localtime()。示例:

time.strftime("%Y-%m-%d %X", time.localtime())
'2011-05-05 16:37:06'

好了,到此这篇关于python时间time模块处理大全的文章就介绍到这了,更多相关python时间time模块处理内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python的else子句使用指南
Feb 27 Python
Python实现自定义顺序、排列写入数据到Excel的方法
Apr 23 Python
python实现人人自动回复、抢沙发功能
Jun 08 Python
mac下如何将python2.7改为python3
Jul 13 Python
对python实时得到鼠标位置的示例讲解
Oct 14 Python
pandas 将索引值相加的方法
Nov 15 Python
Python3实现爬取简书首页文章标题和文章链接的方法【测试可用】
Dec 11 Python
Django REST framework 视图和路由详解
Jul 19 Python
Django 1.10以上版本 url 配置注意事项详解
Aug 05 Python
使用Python打造一款间谍程序的流程分析
Feb 21 Python
python 字符串的驻留机制及优缺点
Jun 19 Python
Python数据可视化之用Matplotlib绘制常用图形
Jun 03 Python
使用AJAX和Django获取数据的方法实例
Oct 25 #Python
Python Tkinter实例——模拟掷骰子
Oct 24 #Python
Python+OpenCV图像处理——图像二值化的实现
Oct 24 #Python
python 下划线的不同用法
Oct 24 #Python
python 写一个性能测试工具(一)
Oct 24 #Python
Django admin组件的使用
Oct 24 #Python
Python数据可视化常用4大绘图库原理详解
Oct 23 #Python
You might like
php面向对象全攻略 (十二) 抽象方法和抽象类
2009/09/30 PHP
php实现与python进行socket通信的方法示例
2017/08/30 PHP
php strftime函数的详细用法
2018/06/21 PHP
PHP设计模式之装饰器模式定义与用法简单示例
2018/08/13 PHP
php面向对象程序设计入门教程
2019/06/22 PHP
javascript脚本编程解决考试分数统计问题
2008/10/18 Javascript
Jquery下判断Id是否存在的代码
2011/01/06 Javascript
jQuery 动态云标签插件
2014/11/11 Javascript
Java中Timer的用法详解
2015/10/21 Javascript
深入解析JavaScript中函数的Currying柯里化
2016/03/19 Javascript
AngularJS基于ui-route实现深层路由的方法【路由嵌套】
2016/12/14 Javascript
微信小程序canvas写字板效果及实例
2017/06/15 Javascript
JavaScript基本语法_动力节点Java学院整理
2017/06/26 Javascript
微信小程序实现单选功能
2018/10/30 Javascript
jQuery-Citys省市区三级菜单联动插件使用详解
2019/07/26 jQuery
Vue项目环境搭建详细总结
2019/09/26 Javascript
js实现提交前对列表数据的增删改查
2020/01/16 Javascript
JavaScript原型继承和原型链原理详解
2020/02/04 Javascript
简单说明Python中的装饰器的用法
2015/04/24 Python
python实现应用程序在右键菜单中添加打开方式功能
2017/01/09 Python
深入理解python中函数传递参数是值传递还是引用传递
2017/11/07 Python
Django实现分页功能
2018/07/02 Python
Python实现带参数的用户验证功能装饰器示例
2018/12/14 Python
python selenium操作cookie的实现
2020/03/18 Python
python requests.get带header
2020/05/05 Python
Python求区间正整数内所有素数之和的方法实例
2020/10/13 Python
连卡佛中国官网:Lane Crawford中文站
2018/01/27 全球购物
澳大利亚最好的厨具店:Kitchen Warehouse
2018/03/13 全球购物
阳光体育:Sunny Sports(购买露营和远足设备)
2018/08/07 全球购物
手工制作的男士奢华英国鞋和服装之家:Goodwin Smith
2019/06/21 全球购物
什么是Rollback Segment
2013/04/22 面试题
新闻报道策划方案
2014/06/11 职场文书
2014年度培训工作总结
2014/11/27 职场文书
海底两万里读书笔记
2015/06/26 职场文书
go 原生http web 服务跨域restful api的写法介绍
2021/04/27 Golang
Vue实现下拉加载更多
2021/05/09 Vue.js