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

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

Python基础之日期时间处理

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

该模块常用的类有:

类名 功能说明
date 日期对象
time 时间对象
datetime 日期时间对象
timedelta 时间间隔
tzinfo 时区对象

本文旨在讲解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 time
time.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 pytz
sh = 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。

相关文章
|
1月前
|
Web App开发 前端开发 JavaScript
探索Python科学计算的边界:利用Selenium进行Web应用性能测试与优化
【10月更文挑战第6天】随着互联网技术的发展,Web应用程序已经成为人们日常生活和工作中不可或缺的一部分。这些应用不仅需要提供丰富的功能,还必须具备良好的性能表现以保证用户体验。性能测试是确保Web应用能够快速响应用户请求并处理大量并发访问的关键步骤之一。本文将探讨如何使用Python结合Selenium来进行Web应用的性能测试,并通过实际代码示例展示如何识别瓶颈及优化应用。
104 5
|
1月前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
【10月更文挑战第1天】Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
131 3
|
1月前
|
安全 Linux 网络安全
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(一)
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(一)
|
1月前
|
Python Windows 网络安全
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(二)
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(二)
|
1月前
|
Python
Datetime模块应用:Python计算上周周几对应的日期
Datetime模块应用:Python计算上周周几对应的日期
|
1月前
|
Python
Python编程获取当前日期的所属周日期信息
Python编程获取当前日期的所属周日期信息
|
13天前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
51 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
16天前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
42 3
|
15天前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
31 1
|
23天前
|
JSON 测试技术 持续交付
自动化测试与脚本编写:Python实践指南
自动化测试与脚本编写:Python实践指南
25 1