Python中的time、datetime、calendar模块(时间模块)
时间模块
时间间隔:是以秒为单位的浮点数
时间戳: 从1970.1.1 00:00:00 开始到指定时间的秒数
1.time模块
UTC : 格林威治天文时间,世界标准时间,在中国UTC+8
DST: 夏令时
时间的表示形式:
① 时间戳: 以整型或者浮点型表示的一个以秒为单位的时间间隔,从1970.1.1 00:00:00 开始到指定时间的秒数
② 元组形式 :
时间的元组形式【year:年,month:月,day:天,hour:时,minutes:分,seconds:秒,weekday:星期,day in year: 一年中的第几天,isdst:是否是夏令时(0表示正常格式,1表示夏令时格式,-1表示自定义格式)】
注意:mouth的取值范围:1~12 weekday的取值范围:0~6,0表示星期一
③ 字符串形式:
使用格式化的方式表示时间,%Y:年份 %m:月份 %d:日 %M:分钟 %h:【12小时制】 %H:【24小时制】 %s:秒
1.1time模块常用的方法
import time'''时间的获取''' # 1.返回当前时间的时间戳,结果为一个浮点数 t1 = time.time() print(t1)# 2.获取UTC的元组形式 t2 = time.gmtime() print(t2)# 3.获取本地时间的元组形式 t3 = time.localtime() print(t3)'''时间相互之间的转换''' # 4.将时间的元组形式转换为时间戳形式 t4 = time.mktime(t3) print(t4)# 5.将时间的元组形式转换为字符串形式 t5 = time.asctime(t3) print(t5)# 6.将时间戳形式转换为字符串形式 t6 = time.ctime(t4) print(t6)# 7.将时间的元组形式转换为字符串形式:自定义格式 t7 = time.strftime("%Y-%m-%d", t3) print(t7)# 8.将时间的字符串形式转换为元组形式 # 注意:时间的字符串必须和时间的格式保持完全一致,否则报错 t8 = time.strptime("2020-2-20", "%Y-%m-%d") print(t8)"""时间戳 <---- 元组 时间戳 ----> 字符串元组 <---> 字符串 """# 9.休眠 print("start~~~~") # 作用: 会让代码暂停【阻塞】,当指定的时间达到之后,则会自动解除阻塞,代码继续向下执行 time.sleep(5) print("end~~~~")
运行结果
""" 1600594967.5052955 time.struct_time(tm_year=2020, tm_mon=9, tm_mday=20, tm_hour=9, tm_min=42, tm_sec=47, tm_wday=6, tm_yday=264, tm_isdst=0) time.struct_time(tm_year=2020, tm_mon=9, tm_mday=20, tm_hour=17, tm_min=42, tm_sec=47, tm_wday=6, tm_yday=264, tm_isdst=0) 1600594967.0 Sun Sep 20 17:42:47 2020 Sun Sep 20 17:42:47 2020 2020-09-20 time.struct_time(tm_year=2020, tm_mon=2, tm_mday=20, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=51, tm_isdst=-1) start~~~~ end~~~~ """
1.2使用time模块的小例子
(1)写一个装饰器,可以统计任意一个函数的执行时间
import timedef countRunTime(func):def inner(*args, **kwargs):start = time.time()# 调用原函数func()end = time.time()print("程序执行总花费了:%f秒" % (end - start))return inner()@countRunTime def testFunc():print("program ~~~~ strat")time.sleep(5)print("program ~~~ end ")
运行结果:
""" program ~~~~ strat program ~~~ end 程序执行总花费了:5.000759秒 """
(2) 有一个时间字符串,如:1999/9/9,输出三天之后的日期1999/9/12
str1 = "1999/9/9" # 将时间的字符串转换为元组 time1 = time.strptime(str1, "%Y/%m/%d") # 将时间的元组形式转换为时间戳 time2 = time.mktime(time1) # 进行加法运算 time3 = time2 + 3 * 24 * 3600 # 将时间戳转换为时间元组 time4 = time.localtime(time3) # 将时间元组转化为字符串格式 time5 = time.strftime("%Y/%m/%d", time4) print(time5)# 可以简化所有的代码 time_1 = time.strftime("%Y/%m/%d", time.localtime(time.mktime(time.strptime(str1, "%Y/%m/%d")) + 3 * 24 * 3600)) print(time_1)
运行结果:
""" 1999/09/12 1999/09/12 """
datetime模块
import datetime# 1.获取当前时间 d1 = datetime.datetime.now() print(d1) print(type(d1)) """ 2020-09-21 18:06:20.772943 <class 'datetime.datetime'> """# 2.获取指定时间【年,月,日,时,分,秒,毫秒】 d2 = datetime.datetime(2016, 6, 6, 6, 6, 6, 6666) print(d2) """ 2016-06-06 06:06:06.006666 """# 3.字符串和datetime类型之间的转换 d3 = datetime.datetime.now() d4 = d3.strftime("%Y/%m/%d") print(d4) print(type(d4)) d5 = datetime.datetime.strptime(d4,"%Y/%m/%d") print(d5) print(type(d5)) """ 2020/09/21 <class 'str'> 2020-09-21 00:00:00 <class 'datetime.datetime'> """# 4.datetime时间对象之间可以进行减法运算 date1 = datetime.datetime(2016, 6, 6, 6, 6, 6, 6666) date2 = datetime.datetime(2016, 6, 10, 6, 20, 20, 6666) result = date2 - date1 print(result) print(result.days) print(result.seconds) """ 4 days, 0:14:14 4 854 """
calender模块
import calendar# 1.打印某年某月的日历表 print(calendar.month(2016, 10)) """October 2016 Mo Tu We Th Fr Sa Su1 23 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 """# 2.直接打印某一年的日历表 print(calendar.calendar(2020)) """2016January February March Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su1 2 3 1 2 3 4 5 6 7 1 2 3 4 5 64 5 6 7 8 9 10 8 9 10 11 12 13 14 7 8 9 10 11 12 13 11 12 13 14 15 16 17 15 16 17 18 19 20 21 14 15 16 17 18 19 20 18 19 20 21 22 23 24 22 23 24 25 26 27 28 21 22 23 24 25 26 27 25 26 27 28 29 30 31 29 28 29 30 31April May June Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su1 2 3 1 1 2 3 4 54 5 6 7 8 9 10 2 3 4 5 6 7 8 6 7 8 9 10 11 12 11 12 13 14 15 16 17 9 10 11 12 13 14 15 13 14 15 16 17 18 19 18 19 20 21 22 23 24 16 17 18 19 20 21 22 20 21 22 23 24 25 26 25 26 27 28 29 30 23 24 25 26 27 28 29 27 28 29 3030 31July August September Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su1 2 3 1 2 3 4 5 6 7 1 2 3 44 5 6 7 8 9 10 8 9 10 11 12 13 14 5 6 7 8 9 10 11 11 12 13 14 15 16 17 15 16 17 18 19 20 21 12 13 14 15 16 17 18 18 19 20 21 22 23 24 22 23 24 25 26 27 28 19 20 21 22 23 24 25 25 26 27 28 29 30 31 29 30 31 26 27 28 29 30October November December Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su1 2 1 2 3 4 5 6 1 2 3 43 4 5 6 7 8 9 7 8 9 10 11 12 13 5 6 7 8 9 10 11 10 11 12 13 14 15 16 14 15 16 17 18 19 20 12 13 14 15 16 17 18 17 18 19 20 21 22 23 21 22 23 24 25 26 27 19 20 21 22 23 24 25 24 25 26 27 28 29 30 28 29 30 26 27 28 29 30 31 31 """# 3.以二维的列表打印出日历 print(calendar.monthcalendar(2016, 10)) """[[0, 0, 0, 0, 0, 1, 2], [3, 4, 5, 6, 7, 8, 9], [10, 11, 12, 13, 14, 15, 16], [17, 18, 19, 20, 21, 22, 23], [24, 25, 26, 27, 28, 29, 30], [31, 0, 0, 0, 0, 0, 0]] """"""4.判断某一年是不是闰年 """ print(calendar.isleap(2016)) """ True """
Python中的time、datetime、calendar模块(时间模块)相关推荐
- python中,time、calendar、datetime
原文链接: python中,time.calendar.datetime-MakeDreamsFactory-51CTO博客 https://blog.51cto.com/14094286/23246 ...
- 如何在Python中获取文件创建和修改日期/时间?
我有一个脚本,该脚本需要根据文件创建和修改日期执行一些操作,但必须在Linux和Windows上运行. 在Python中获取文件创建和修改日期/时间的最佳跨平台方法是什么? #1楼 最好的功能是os. ...
- python中 time、datetime、random模块
1. 自定义模块 1.1 模块分类 模块的分类: 1.内置模块(标准库)--python解释器自带的.py文件(模块): 2.第三方模块-- 需要额外下载的 (pypi) 3.自定义模块(程序员写的) ...
- python dateutil_Python 常用日期处理 -- calendar 与 dateutil 模块的使用
本文紧承上一篇 Python 常用日期处理,因制于篇幅的大小需求才临时分立新篇,这里要简单提到 calendar 和 dateutil 模块的使用,其中 calendar 是 Python 内置的.相 ...
- python中raise stoplteration_推导表达式迭代器生成器模块和包 | 编程电脑技术交流...
魔法方法需要特定的条件去触发 有next是迭代器 # li = [] # for i in range(1,10): # li.append(i) # print(li) # ------------ ...
- Python中date、datetime、timedelta 讲解
Python时间相关的操作使用 datetime 模块 导入模块: import datetime 1. 打印时间 1. 打印当前时间 import datetime# 打印当前时间 now 和 to ...
- python中functools_Python传说中的函数神器functools模块,为你全面解析
functools 模块提供用于调整或扩展函数和其他可调用对象的工具,而无需完全重写它们.装饰器 partial 类是 functools 模块提供的主要工具, 它可以用来"包装" ...
- python中有关数据持久存储:pickle模块的基本使用
python的pickle模块实现了基本的数据序列和反序列化.通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储:通过pickle模块的反序列化操作,我们能够从文件 ...
- Python 中的黑暗角落(三):模块与包
如果你用过 Python,那么你一定用过 import 关键字加载过各式各样的模块.但你是否熟悉 Python 中的模块与包的概念呢?或者,以下几个问题,你是否有明确的答案? 什么是模块?什么又是包? ...
- 模块是python中普通的文件吗_python 包和模块
当执行代码时,从这行开始执行:当外部调用代码为模块时,此部分不会被执行. if __name__ == '__main__': pass 模块是对代码的整理,包是对模块的整理. 模块 Python 模 ...
最新文章
- 实施和开发哪个前景好_「深圳app开发」app模板开发和app定制开发哪个好呢?
- 滑铁卢大学计算机科学双录取,滑铁卢大学双录取要求
- php 32位v11库下载,LibFredo6 (多国语言编译库) v11.6a (原版)
- android手机 windows7,windows7手机版系统下载
- 读后感系列2:《看见》柴静(一)
- MySQL运行机制原理架构
- action的编写方式
- java.util.concurrent.ExecutionException 错误解决。
- 万字长文!推荐一款日志切割神器
- 匿名上位机V7波形显示教程
- Java程序员在用的大数据工具
- 关于Flash的几点思考(Thoughts on Flash)
- 3.找回原来win10右键的方法
- 异常:org.apache.ibatis.binding.BindingException: Mapper method 'xyz.mytch.home.dao.HomeDao.findConTota
- TLD(Tracking-Learning-Detection)一种目标跟踪算法
- 回忆当年高考的一道数学证明题
- oracle数据库测评
- Axure RP 8来回旋转
- Delphi 7连接MySql 5.5.15
- ATMEGA8(数码管时钟)
热门文章
- MySQL【环境搭建 03】腾讯云 Linux 环境踩坑 loading shared libraries: libnuma.so.1 + quit without updating PID file
- 记录一些使用git过程中的bug
- 《操作系统》实验报告——进程管理
- linux脚本的数据输出到excel,使用shell实现Excel表格导出功能 | 剑花烟雨江南
- matlab canny边缘,matlab – 定向Canny边缘检测
- GitHub基本使用
- 分支界限算法【0-1背包问题】按照优先队列式(LC)分支限界法求解0-1背包问题, 并给出限界函数,并画出该实例的状态空间树。
- Bootstrap4+MySQL前后端综合实训-Day09-PM【实训汇报、在同一校园网下,查看别人的项目——ipconfig】
- iOS开发教程:Storyboard全解析-第二部分
- JVM内存管理------杂谈(借此也论一论obj=null)