Python时间与日期操作(datetime、time、calendar)

相关模块

模块 说明
time time是一个仅包含与日期和时间相关的函数和常量的模块,在本模块中定义了C/C++编写的几个类。例如,struct_time类
datetime datetime是一个使用面向对象编程设计的模块,可以在Python中使用日期和时间。它定义了几个表示日期和时间的类
calendar 日历是一个提供函数的模块,以及与Calendar相关的几个类,它们支持将日历映像生成为text,html,….
locale 该模块包含用于格式化或基于区域设置分析日期和时间的函数。

UTC(CoordinatedUniversal Time,世界协调时)亦即格林威治天文时间,世界标准时间。在中国为UTC+8。

DST(DaylightSaving Time)即夏令时。是一种为节约能源而人为规定地方时间的制度,一般在天亮早的夏季人为将时间提前一小时

struct_time结构:

索引 字段
0 tm_year 2018,2019…
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(60或61是闰秒)
6 tm_wday 0 ~ 6(0是星期一)
7 tm_yday 1 ~ 366(朱利安日)
8 tm_isdst 1,0,1,-1是决定是否为夏令时的旗帜
#自定义日期格式
def gestime():t=time.struct_time(tm_year=2021,tm_mon=11,tm_mday=21,tm_hour=12,tm_min=34,tm_sec=21,tm_wday=2,tm_yday=110,tm_isdst=0)print(t)

提示:

t=time.struct_time(tm_year=2021,tm_mon=11,tm_mday=21,tm_hour=12,tm_min=34,tm_sec=21,tm_wday=2,tm_yday=110,tm_isdst=0)
TypeError: structseq() takes at most 2 keyword arguments (9 given)

由于自己写的不够真实,我们利用datetime生成一个

def gestime():tt=datetime.datetime(2000, 11, 30, 0, 0, 0).timetuple()print(tt)

会输出一个:

time.struct_time(tm_year=2000, tm_mon=11, tm_mday=30, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=335, tm_isdst=-1)

time模块

   time模块,它提供了处理时间和表示之间转换的功能。help(time)之后可以知道time有2种时间表示形式:

1、时间戳表示法,即以整型或浮点型表示的是一个以秒为单位的时间间隔。这个时间的基础值是从1970年的1月1号零点开始算起。

2、元组格式表示法,这个元组有9个整型内容。分别表示不同的时间含义。

编号 方法 描述
1 time.time() 返回当前时间时刻,浮点数形式秒数,不支持参数
2 time.clock() 返回当前程序的cpu执行时间。为了测量不同方法的计算成本,time.clock的值比time.time()的值更有用。unix系统始终返回全部运行时间;而windows从第二次开始都是以第一次调用此函数时的时间戳作为基准
3 time.sleep(secs) 暂停调用线程secs秒,接受整型和浮点型参数。
4 time.gmtime([secs]) 将时间戳转换为UTC时间元组格式。接受一个浮点型时间戳参数,其默认值为当前时间戳。
5 time.localtime([secs]) 将时间戳转换为本地时间元组格式。接受一个浮点型时间戳参数,其默认值为当前时间戳。
6 time.asctime([tupletime]) 接受时间元组,并返回一个可读的24个字符的字符串,例如’Tue Dec 11 22:07:14 2019’,默认值为localtime()返回值。
7 time.ctime([secs]) 接受时间戳,转换为字符串。其默认值为当前时间戳。函数等价于asctime(localtime(seconds))。
8 time.mktime(tupletime) 将本地时间元组,转换为时间戳(浮点值,该时间点以秒为单位表示。)。接受一个时间元组,必选。
9 time.strftime(fmt[,tupletime]) 将时间元组以指定的格式(字符串fmt指定)转换为字符串形式。接受字符串格式化串、时间元组。时间元组为可选,默认为localtime()
10 time.strptime(str,fmt="")

根据格式字符串fmt解析str,并返回元组格式的时间。

strftime()的逆向过程。接受字符串,时间格式2个参数,都是必选

11 time.altzone 本地DST时区的偏移量(以秒为单位的UTC)。
12 time.tzset() 改变本地时区

 自定义格式:

格式  含义  备注
%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  时区的名字(如果不存在为空字符)
%%  ‘%’字符

time模块重要属性

序号 属性 说明
1 time.timezone UTC和本地时区(不含DST)之间的偏移量,以秒计
2 time.tzname 关于(标准时区名称, 夏令时时区名称)的元组
3 time.altzone 当地夏令时时间与标准UTC时间的误差,以秒计
4 time.daylight 当地时间是否反映夏令时,默认为0
#自定义日期格式
def gestime():# 获取当前本地时间(生成一个字符串时间)localtime = time.localtime(time.time())print("Local current time :", localtime)# 当前时间格式化(字符串时间格式化,可以分别获取年月日,时分秒)curtime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())print(curtime)# 也可以使用asctime()进行时间格式化print(time.asctime(localtime))

输出:

Local current time : time.struct_time(tm_year=2021, tm_mon=12, tm_mday=16, tm_hour=21, tm_min=27, tm_sec=0, tm_wday=3, tm_yday=350, tm_isdst=0)
2021-12-16 21:27:00
Thu Dec 16 21:27:00 2021Process finished with exit code 0

Calendar模块

calendar模块提供与日历相关的功能,包括为给定的月份或年份打印文本日历的功能。

以下是calendar模块可用的功能函数列表

序号 函数 描述
1 Calendar(year,w = 2,l = 1,c = 6) 返回一个具有年份日历的多行字符串格式化为三列,以c个空格分隔。 w是每个日期的字符宽度;每行的长度为21 * w + 18 + 2 * c,l是每周的行数。
2 firstweekday( ) 返回当前设置每周开始的星期。默认情况下,当日历首次导入时设置为:0,表示为星期一。
3 isleap(year) 如果给定年份(year)是闰年则返回True;否则返回:False。
4 leapdays(y1,y2) 返回在范围(y1,y2)内的年份中的闰年总数。
5 Month(year,month,w = 2,l = 1) 返回一个多行字符串,其中包含年份月份的日历,每周一行和两个标题行。 w是每个日期的字符宽度;每行的长度为7 * w + 6。 l是每周的行数
6 Monthcalendar(year,month) 返回int类型的列表。每个子列表表示一个星期。年份月份以外的天数设置为0;该月内的日期设定为月份的第几日:1 ~ 31
7 Monthrange(year,month) 返回两个整数。第一个是年度月(month)的星期几的代码;第二个是当月的天数。表示星期几为0(星期一)至6(星期日);月份是1到12
8 Prcal(year,w = 2,l = 1,c = 6) 类似于:calendar.calendar(year,w,l,c)的打印
9 Prmonth(year,month,w = 2,l = 1) 类似于:calendar.month(year,month,w,l)的打印
10 setfirstweekday(weekday) 将每周的第一天设置为星期几的代码。星期几的代码为0(星期一)至6(星期日)。
11 timegm(tupletime) time.gmtime的倒数:以时间元组的形式接受时刻,并返回与从时代(epoch)开始的浮点数相同的时刻。
12 weekday(year,month,day) 返回给定日期的星期几的代码。星期几的代码为0(星期一)至6(星期日);月数是1(1月)到12(12月)。
#自定义日期格式
def gestime():import calendarcal = calendar.month(2018, 10);print(cal)
2019 10 20October 2018
Mo Tu We Th Fr Sa Su1  2  3  4  5  6  78  9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31Process finished with exit code 0

datetime的用法: datetime是Python处理日期和时间的标准库。

#分别获取年月日
def test01():year = datetime.datetime.today().yearmonth = datetime.datetime.today().monthday = datetime.datetime.today().dayprint('{},{},{}'.format(year,month,day))
# 计算两个日期相差多少天d1 = date(2018, 10, 18);d2 = date(2017, 12, 31);print((d1 - d2).days);
# 当前日期curdate = date.today();print(curdate )

curdate = 2021-12-16

# 计算十天之后的日期时间nowday = datetime.now();# timedelta类可以很容易地算出前几天和后几天的时刻。(timedelta(days= d, hours= h))# 还可以查看第几周对应的时间,例如:timedelta(weeks=20) 20周将被自动转化为天数# 前几天时刻,用减法。  后几天时刻,则用当前时间加上timedelta(days = d, hours= h)lastday = nowday + timedelta(days=10);print(str(lastday));print(lastday.ctime());  # ctime()  返回一个表示日期和时间的字符串。# 查看某一天是今年的第几天和第几周testday = date(2017, 8, 31);print(testday.isocalendar());  # isocalendar() 函数返回三元组    分别为:年份,周数,周几print(testday.timetuple());  # timetuple()  返回时间元祖

2018-11-11 10:40:01.641845

Sun Nov 11 10:40:01 2018

(2017, 35, 4)

参考:Python时间与日期操作(datetime、time、calendar) - 阳光宝贝-沐沐 - 博客园 (cnblogs.com)https://www.cnblogs.com/pinpin/p/9882852.html

python时间函数的使用相关推荐

  1. python时间函数报错_python3中datetime库,time库以及pandas中的时间函数区别与详解...

    1介绍datetime库之前 我们先比较下time库和datetime库的区别 先说下time 在 Python 文档里,time是归类在Generic Operating System Servic ...

  2. python时间函数报错_Python Day11-LEGB-global-时间函数

    1.LEGB规则对变量名进行作用域解析 我们已经知道了多个命名空间可以独立存在,而且可以在不同的层次上包含相同的变量名."作用域"定义了Python在哪一个层次上查找某个" ...

  3. python时间函数纳秒_在Python中以秒和纳秒获取POSIX / Unix时间?

    我一直在努力找到一种方法来获取自1970-01-01 00:00:00 UTC以来的时间,以秒为单位,在python中以纳秒为单位,我找不到能给我正确精度的任何东西. 我尝试过使用时间模块,但是精度只 ...

  4. python时间函数入门_calendar在python3时间中有哪些常用函数?怎么用?

    想要在python中写代码游刃有余,没有函数的支持是万万不行的.很多小伙伴反映,最近函数的应用知识不够了,所以小编挑选了python3时间中的函数,希望可以帮助大家在处理日历方面更加的迅速.其他更多的 ...

  5. python时间函数详解_Python:Numpy库基础分析——详解datetime类型的处理

    原标题:Python:Numpy库基础分析--详解datetime类型的处理 Python:Numpy库基础分析--详解datetime类型的处理 关于时间的处理,Python中自带的处理时间的模块就 ...

  6. python 时间函数 毫秒_利用python进行播放音频与录音,骚操作!

    现如今,我们的学习知识的渠道越来越多,我们也要充分利用自己的感官去汲取知识.当我们看书累的时候,我们完全可以听过听书来学习,这样的平台也很多,pk 哥之前也写过关于下载喜马拉雅音频爬虫的方法:Pyth ...

  7. python时间函数详解_Python 日期的转换及计算的具体使用详解

    日期的转换及计算 对于日期,有时需执行不同时间单位的转换,或者接受字符串格式的日期,转换为 datetime 对象.有时需计算日期的范围,以及特定某个星期几的日期.这里更多用到的是 Python 提供 ...

  8. python时间函数纳秒_python 时间 纳秒_Pandas时间序列(翻译)

    昨天快下班时的需求,对时间进行偏移计算.找了一篇介绍Pandas时间序列的文章,大致翻译一下(把英文粘贴到谷歌翻译,再把中文拷贝过来). 原文:https://jakevdp.github.io/Py ...

  9. python 时间函数

    在应用程序的开发过程中,难免要跟日期.时间处理打交道. #取当日时间的零点零分零秒的时间戳 def getzerotime():         tm = int(time.time())       ...

最新文章

  1. Hyper-V应用指南之6-差异磁盘的使用[转]
  2. 上海交大情感脑电数据集(SJTU Emotion EEG Dataset,SEED)
  3. 一个完美网站的101项指标(转)
  4. 如何使用Web.config的authentication节实现Form认证
  5. 《剑指offer》把数组排成最小的数
  6. OpenSSH 密钥管理:RSA/DSA 认证(转载)
  7. HTML的HTTP 中 GET 与 POST 的区别
  8. 如何利用扩展欧几里得算法求解不定方程_欧几里德算法、拓展欧几里德、中国剩余定理...
  9. es6 proxy、handler.get()
  10. java发送http跨域_跨域发送HTTP请求详解
  11. 随想录(c语言的优缺点)
  12. 寻找最大的k个数问题
  13. Django_RBAC_demo2 升级版权限控制组件
  14. 演出节目名字_华晨宇——让我看娱乐节目看到感动
  15. 移动APP中那些关乎用户体验的测试项
  16. 医院信息中心机房建设
  17. 【手写源码-设计模式9】-装饰器模式-基于王者荣耀英雄-甄姬皮肤场景
  18. 中国合成革行业应用发展分析与销售前景研究报告2022版
  19. linux 查看dns进程,探查Linux系统DNS服务器运行状况
  20. Cygwin安装和配置

热门文章

  1. C++学习笔记(九)——引用
  2. c++课程学习(未完待续)
  3. 对reids 服务器性能测试
  4. OpenCV kmeans代码
  5. OpenJTAG与JLink的区别比较
  6. 3-3-ServletContext接口
  7. python生成yaml_使用python脚本自动生成K8S-YAML的方法示例
  8. python 统计分析 包_Python 数据分析包:pandas 基础
  9. html5图片比例控制,按比例调整图像大小以适应HTML5画布
  10. ubuntu kylin mysql_Ubuntu16.04下Kylin的安装与配置