写点什么

软件测试|教你轻松玩转 Python 日期时间

  • 2023-10-10
    北京
  • 本文字数:1834 字

    阅读完需:约 6 分钟

Python 基础之日期时间处理

前言:软件测试工作中,有时会需要我们在代码中处理日期以及时间,python 内置的 datetime 模块就可以很好地帮我们处理这个问题。


该模块常用的类有:



本文旨在讲解 datetime 模块中 datetime 类的使用方法,其他类我们后续有机会补上。datetime 对象是 date 与 time 的结合体,涵盖了 date 和 time 对象的所有信息。

一、导入 datetime 类

内置模块,无需安装,只有一步,直接 from ... import...即可


from datetime import datetime
复制代码

二、构造 datetime 对象

datetime(year,month,day,hour=0, minute=0, second=0, microsecond=0, tzinfo=None)
-------------------# 参数解析- year:年 - MINYEAR<=year<=MAXYEAR - 最小年份为1,最大年份为9999- month:月,范围为1-12- day:日期,指定日期的天数- hour:小时,范围为[0,24)- minute:分钟,范围为[0,60)- second:秒,范围为[0,60)- microsecond:微秒,范围为[0,1000000)- tzinfo:时区
复制代码


实例:


datetime(2022,12,18,12,00,59)# 输出 : datetime.datetime(2022, 12, 18, 12, 00, 59)
复制代码

三、类方法

  1. datetime.today()返回本地区当前日期时间 datetime 对象


datetime.today()# 输出 : datetime.datetime(2023, 02, 07, 11, 16, 28, 801022)
复制代码


  1. datetime.now(tz=None)返回本地区当前日期时间 datetime 对象,可以添加时区(tz)默认无时区时,返回结果与 datetime.today()一致


datetime.now()
# 输出: datetime.now(2023, 02, 07, 11, 16, 28, 801022)
复制代码


  1. datetime.utcnow()


返回国际标准时间的 datetime 对象


datetime.utcnow()
# 输出: datetime.utcnow(2023,02,07,03,23,42,392575)
复制代码


  1. datetime.fromtimestamp(timestamp, tz=None)


返回给定时间戳的 datetime 对象,时区默认为空,要返回当地日期时间,也可以指定时区


datetime.fromtimestamp(1675740670)
# 输出 datetime.fromtimestamp(2023,02,07,11,31,10)
复制代码


补充:获取当前时间戳的方式,使用 time 模块的 time 方法


import timetime.time()
# 输出: 1675740920.8793664
复制代码


  1. datetime.utcfromtimestamp(timestamp)


返回给定时间戳的 datetime 对象,默认为 UTC(国际标准时间)


datetime.utcfromtimestamp(time.time())
# 输出:datetime(2023,02,07,03,40,43,742268)
复制代码


  1. datetime.strptime(date_string, format)


将格式化日期时间字符串,转换为 datetime 对象,可以转换日期、时间、日期时间


datetime.strptime('2019-11-05','%Y-%m-%d')# 输出 : datetime.datetime(2019, 11, 5, 0, 0)datetime.strptime('09:30:50','%H:%M:%S')# 输出 : datetime.datetime(1900, 1, 1, 9, 30, 50)datetime.strptime('2019-11-05 09:30:50','%Y-%m-%d %H:%M:%S')# 输出 : datetime.datetime(2019, 11, 5, 9, 30, 50)
复制代码

实例方法

  1. datetime.date()


返回 date(日期)对象


d = datetime(2023,02,07,11,51,50)d.date()# 输出 : datetime.date(2019, 12, 6)
复制代码


  1. datetime.time()


返回 time(时间)对象


d = datetime(2023,02,07,11,51,50)d.time()# 输出 : datetime.time(11, 51, 50)
复制代码


  1. datetime.timestamp()


对于给定的 datetime 对象返回时间戳


d = datetime(2023,02,07,11,31,09)d.timestamp()# 输出 : 1675740670.0
复制代码


  1. datetime.weekday()返回星期几,星期一为 0,星期天为 6


d = datetime(2023,2,7,13,30,50)d.weekday()
# 输出 : 4
复制代码


  1. datetime.isoweekday()返回星期几,星期一为 1,星期天为 7


d = datetime(2023,2,7,13,30,50)d.isoweekday()
# 输出 : 2
复制代码


  1. datetime.isocalendar()返回数组:(年、第多少周、星期几)


d = datetime(2023,02,7,13,30,50)d.isocalendar()# 输出 : (2023, 6, 2)
复制代码


  1. datetime.ctime()返回日期时间的字符串表示


d = datetime(2023,2,7,13,30,50)d.ctime()# 输出 : 'Tue Feb  7 13:30:50 2023'
复制代码

类实例属性

  1. datetime.year 返回给定 datetime 对象的年份


d = datetime(2019,2,7,13,30,50)d.year
# 输出 : 2023
复制代码


同理,月份,日期,某时,某分,某秒都可以这样输出,这里不再赘述。


  1. datetime.tzinfo


返回 datetime 对象的时区,前提是在创建 datetime 对象时需传入 tzinfo 参数,如果没有传入则返回值为 None


# 获取一个含有时区的datetime对象import pytzsh = pytz.timezone('Asia/Shanghai')d = datetime(2023, 2, 7, hour=8, tzinfo=sh)d.tzinfo
# 输出 : <DstTzInfo 'Asia/Shanghai' LMT+8:06:00 STD>
复制代码

总结

本文介绍了 datetime 模块中 datetime 类的各种使用方法,欢迎继续补充,另外希望这篇文章能够帮助更多同学学习使用 datetime 类,更好地学习 Python。


获取更多技术资料,请点击!

用户头像

社区:ceshiren.com 微信:ceshiren2021 2019-10-23 加入

微信公众号:霍格沃兹测试开发 提供性能测试、自动化测试、测试开发等资料,实时更新一线互联网大厂测试岗位内推需求,共享测试行业动态及资讯,更可零距离接触众多业内大佬。

评论

发布
暂无评论
软件测试|教你轻松玩转Python日期时间_霍格沃兹测试开发学社_InfoQ写作社区