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中使用urllib2防止302跳转的代码例子
Jul 07 Python
Python Tkinter GUI编程入门介绍
Mar 10 Python
Windows中使用wxPython和py2exe开发Python的GUI程序的实例教程
Jul 11 Python
Python使用SQLite和Excel操作进行数据分析
Jan 20 Python
Django项目实战之用户头像上传与访问的示例
Apr 21 Python
Anaconda下配置python+opencv+contribx的实例讲解
Aug 06 Python
python使用matplotlib绘制热图
Nov 07 Python
python实现简单图片物体标注工具
Mar 18 Python
如何通过Python实现标签云算法
Jul 02 Python
Python操作SQLite数据库过程解析
Sep 02 Python
python mysql 字段与关键字冲突的解决方式
Mar 02 Python
keras处理欠拟合和过拟合的实例讲解
May 25 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
山进SANGEAN ATS-909X电路分析
2021/03/02 无线电
索尼ICF-SW100收音机评测
2021/03/02 无线电
PHP中文汉字验证码
2007/04/08 PHP
php print EOF实现方法
2009/05/21 PHP
php数组函数序列之array_combine() - 数组合并函数使用说明
2011/10/29 PHP
$_GET['goods_id']+0 的使用详解
2013/06/06 PHP
PHP6新特性分析
2016/03/03 PHP
yii2 commands模式以及配置crontab定时任务的方法
2017/08/19 PHP
javascript css在IE和Firefox中区别分析
2009/02/18 Javascript
判断浏览器的javascript版本的代码
2010/09/03 Javascript
js下拉框二级关联菜单效果代码具体实现
2013/08/03 Javascript
用JS将搜索的关键字高亮显示实现代码
2013/11/08 Javascript
JS 弹出层 定位至屏幕居中示例
2014/05/21 Javascript
使用javascript实现Iframe自适应高度
2014/12/24 Javascript
jquery实现文本框textarea自适应高度
2016/03/09 Javascript
js实现3D图片环展示效果
2017/03/09 Javascript
在 Angular 中使用Chart.js 和 ng2-charts的示例代码
2017/08/17 Javascript
vue实现移动端轻量日期组件不依赖第三方库的方法
2019/04/28 Javascript
[05:20]卡尔工作室_DOTA2新手教学_DOTA2超强新手功能
2013/04/22 DOTA
[01:24:34]2014 DOTA2华西杯精英邀请赛5 24 DK VS LGD
2014/05/25 DOTA
[51:14]LGD vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.21
2018/08/22 DOTA
详尽讲述用Python的Django框架测试驱动开发的教程
2015/04/22 Python
浅析Python中else语句块的使用技巧
2016/06/16 Python
Python的装饰器用法学习笔记
2016/06/24 Python
Python算法之求n个节点不同二叉树个数
2017/10/27 Python
Python实现感知器模型、两层神经网络
2017/12/19 Python
Python3实现的画图及加载图片动画效果示例
2018/01/19 Python
Python使用Selenium+BeautifulSoup爬取淘宝搜索页
2018/02/24 Python
TensorFlow实现卷积神经网络
2018/05/24 Python
python matplotlib库的基本使用
2020/09/23 Python
Staples美国官方网站:办公用品一站式采购
2016/07/28 全球购物
毕业生幼师求职自荐信
2013/10/01 职场文书
银行求职自荐书
2014/06/25 职场文书
学生会生活部工作总结2015
2015/03/31 职场文书
使用jpa之动态插入与修改(重写save)
2021/11/23 Java/Android
Python读取和写入Excel数据
2022/04/20 Python