9.日期和时间
发布日期:2021-05-17 07:48:53 浏览次数:20 分类:精选文章

本文共 3517 字,大约阅读时间需要 11 分钟。

Python时间和日期处理模块

Python timedatetime 模块是处理时间和日期的核心工具,功能强大且广泛应用于开发中。本文将详细介绍这些模块的主要功能和使用方法。

1. time模块

time 模块提供了一系列函数来处理和格式化时间信息,主要包含以下功能:

1.1 time函数

time.time() 返回当前系统时间的时间戳(Unix时间),以秒为单位。返回的值是浮点数。

import timenow = time.time()print("%f" % now)  # 输出当前时间戳

1.2 localtime函数

time.localtime() 将时间戳格式化为本地时间,返回一个 struct_time 对象。这可以用于获取当前时间或自定义时间的格式化结果。

import timeprint(time.localtime())  # 返回当前系统时间print(time.localtime(0))  # 返回 Unix 时间 0 对应的本地时间

1.3 mktime函数

time.mktime()localtime() 相反,它接收 struct_time 对象并返回对应的时间戳。

import timesecs = time.mktime((2020, 9, 27, 15, 0, 0, 6, 271, 0))print("%f" % secs)  # 输出对应的 Unix 时间戳# 将时间戳转换为 UTC 时区的时间print("%f" % time.mktime(time.localtime(secs)))

1.4 gmtime函数

time.gmtime() 将一个时间戳转换为 GMT(协调世界时)时区的 struct_time 对象,默认使用当前时间。

import timeprint(time.gmtime())  # 返回当前的 GMT 时间print(time.gmtime(0))  # 显然 Unix 时间 0 对应的 GMT 时间

1.5 asctime函数

time.asctime() 将一个 struct_time 对象格式化为可读的字符串形式,例如 "Tue Jul 17 17:03:01 2018"。

import timet =(2018,7,17,17,3,1,1,1,0)print(time.asctime(t))  # 格式化为常貌易懂的时间格式print(time.asctime(time.localtime()))  # 获取当前时间的格式化字符串

1.6 ctime函数

time.ctime() 将时间戳格式化为类似 asctime 的字符串形式。

import timeprint("%s" % time.ctime())  # 返回当前时间的ctime表示print("%s" % time.ctime(0))  # 显然后前时间0的ctime表示

1.7 sleep函数

time.sleep() 用于在线程中暂停执行。

import timeprint("%s" % time.ctime())time.sleep(3)print("%s" % time.ctime())

1.8 clock函数

time.clock() 返回当前 CPU 的 CPU 时间,以浮点数形式表示。

import timestart = time.clock()time.sleep(0.1)print(time.clock() - start)  # 返回 elapsed 时间

1.9 strftime函数

dateutil.strftime() 格式化时间或日期为特定的字符串格式。

import datetimet = (2018,7,17,17,3,1,1,1,0)t_mk = datetime.mktime(t)print(datetime.strftime("%b %d %Y %H:%M:%S", t_mk))

2. datetime模块

datetime 模块提供了更全面的时间和日期处理功能,可以将日期和时间结合起来使用。

2.1 date对象

date 类表示日期,无法包含时间信息。

import datetimeprint(datetime.date(2020,9,27))  # 显然日期print(datetime.date.today())  # 返回今天的日期print(datetime.date.today().weekday())  # 返回星期几(0-6)

2.2 time对象

time 类表示时间,与日期无关。

import datetimetime1 = datetime.time()print(time1)  # 默认是 00:00:00time2 = datetime.time(hour=8, second=7)print(time2)  # 08:00:07

2.3 datetime对象

datetime 类将日期和时间结合起来。

import datetimedt1 = datetime.datetime(year=2018, month=7, day=1, hour=16, minute=10, second=5)print(dt1)  # 输出完整的日期和时间today = datetime.datetime.today()print(today)  # 返回当前本地时间和日期

2.4 timedelta对象

timedelta 表示两个日期之间的时间差。

import datetimedt1 = datetime.datetime(2018,7,1,4,15,10)dt2 = dt1 + datetime.timedelta(weeks=-2)print(dt1 - dt2)  # 返回相差的天数

2.5 tzinfo对象

tzinfo 类提供时区信息,可以用于自定义时间。常用的方法是通过 datetime.timezone 获取 UTC 时区的 tzinfo 实例。

import datetimefrom datetime import tzinfoutc_tz = tzinfo()print(utc_tz)

3. calendar模块

calendar 模块提供了日历相关的方法,可以生成日历表格等。

3.1 isleap函数

判断给定年份是否是闰年。

import calendarprint(calendar.isleap(2000))  # Trueprint(calendar.isleap(2018))  # False

3.2 month函数

生成一个星期的日历表格,每行包含7天。

print(calendar.month(2018,7))  # 输出一个完整的日历表

3.3 monthrange函数

返回一个包含月份第一天是星期几,以及月份的天数的元组。

print(calendar.monthrange(2018,7))  # (6, 31)

3.4 weekday函数

返回给定日期的星期数。

print(calendar.weekday(2018,7,1))  # 6

4. dateutil库

dateutil 库是 datetime 模块的扩展,提供更高级的日期和时间处理功能。

4.1 安装

通过 conda install python-dateutil 安装。

conda install python-dateutil

4.2 使用

dateutil 提供两个主要模块:parserrrule

4.2.1 parser模块

用于解析日期和时间字符串。

from dateutil.parser import parseprint(parse("Sat Oct 11 11:11:11 UTC 2003"))

4.2.2 rrule模块

用于生成重复的时间规则。

import dateutilfrom dateutil.rrule import rrulefrom datetime import datetimestart_date = datetime(2011,8,1)l = list(rrule(freq=MONTHLY,count=4,dtstart=start_date))print(l)

通过以上方法,可以全面利用 Python 的时间和日期处理功能,完成开发中的时间相关需求。

上一篇:10.多线程与并行
下一篇:8.文件与IO

发表评论

最新留言

很好
[***.229.124.182]2025年04月24日 18时52分37秒