您的位置:

Python time模块:处理时间和日期的利器

一、time模块概述

Python提供了time模块来处理日期和时间。它包含了各种与时间相关的函数。在Python中,时间以tuple(元组)的形式被表示。元组中包含了年、月、日、小时、分钟、秒、一周中第几天、一年中第几天、是否为夏令时等信息。

下面是通过time模块获取当前时间的代码:

import time
current_time = time.localtime()
print(current_time)

运行上述代码后,输出结果为:

time.struct_time(tm_year=2021, tm_mon=3, tm_mday=25, tm_hour=10, tm_min=45, tm_sec=36, tm_wday=3, tm_yday=84, tm_isdst=0)

在上述代码中,time.localtime()函数返回当前时间元组,包括了年、月、日、小时、分钟、秒、一周中第几天、一年中第几天、是否为夏令时等信息。

二、time模块常用函数

1.time()

time()函数返回当前时间的时间戳(1970年1月1日零时到现在的秒数)。

import time
timestamp = time.time()
print("当前时间戳为:", timestamp)

运行上述代码后,输出结果为:

当前时间戳为: 1616666607.9862998

2.localtime()

localtime()函数将一个时间戳转换为当前时区的struct_time。若不指定参数,则以当前时间为准。可以通过访问元组成员来获取年、月、日、小时、分钟、秒、一周中第几天、一年中第几天、是否为夏令时等信息。

import time
current_time = time.localtime()
print("当前时间:", current_time)
print("年份:", current_time.tm_year)
print("月份:", current_time.tm_mon)
print("日期:", current_time.tm_mday)
print("小时:", current_time.tm_hour)
print("分钟:", current_time.tm_min)
print("秒钟:", current_time.tm_sec)

运行上述代码后,输出结果为:

当前时间: time.struct_time(tm_year=2021, tm_mon=3, tm_mday=25, tm_hour=11, tm_min=16, tm_sec=4, tm_wday=3, tm_yday=84, tm_isdst=0)
年份: 2021
月份: 3
日期: 25
小时: 11
分钟: 16
秒钟: 4

3.strftime()

strftime()函数将一个struct_time(时间元组)格式化为字符串。

import time
current_time = time.localtime()
time_str = time.strftime("%Y-%m-%d %H:%M:%S", current_time)
print("格式化后的时间:", time_str)

运行上述代码后,输出结果为:

格式化后的时间: 2021-03-25 11:23:03

其中,%Y代表年份(四位数),%m代表月份(两位数,01-12),%d代表日期(两位数,01-31),%H代表小时(24小时制,两位数,00-23),%M代表分钟(两位数,00-59),%S代表秒钟(两位数,00-59)。

4.sleep()

sleep()函数可以让程序暂停一段时间。

import time
print("程序开始执行...")
time.sleep(5)
print("5秒钟后...")

运行上述代码后,输出结果为:

程序开始执行...
5秒钟后...

三、datetime模块

Python中还有一个datetime模块,它提供了更高级别的时间处理功能。datetime模块中的datetime类既可以表示日期,也可以表示时间。

1.datetime类常用属性和方法

下面是datetime类常用属性和方法的介绍:

  • datetime.today():返回当前本地时间的datetime对象。
  • datetime.now():返回当前本地时间的datetime对象,同时可以指定时区。
  • datetime.utcnow():返回当前UTC时间的datetime对象。
  • datetime.fromtimestamp(timestamp):将时间戳转换为datetime对象。
  • datetime.strftime(format):将datetime对象格式化为字符串。

下面是通过datetime模块获取当前时间的代码:

from datetime import datetime
current_time = datetime.now()
print("当前时间:", current_time)

运行上述代码后,输出结果为:

当前时间: 2021-03-25 11:58:34.467982

下面是将datetime对象格式化为字符串的代码:

from datetime import datetime
current_time = datetime.now()
time_str = current_time.strftime("%Y-%m-%d %H:%M:%S")
print("格式化后的时间:", time_str)

运行上述代码后,输出结果为:

格式化后的时间: 2021-03-25 11:58:34

2.timedelta类

timedelta类表示时间间隔。可以用来计算两个日期之间的天数、小时数等。timedelta对象有days、seconds、microseconds三个只读属性,可以分别获取天数、秒数和微秒数。

下面是计算两个日期之间的天数的代码:

from datetime import datetime, timedelta
date1 = datetime(2021, 3, 1)
date2 = datetime(2021, 3, 25)
diff = date2 - date1
print("两个日期之间的天数:", diff.days)

运行上述代码后,输出结果为:

两个日期之间的天数: 24

下面是通过timedelta类来计算时间之后的日期的代码:

from datetime import datetime, timedelta
current_time = datetime.now()
one_day = timedelta(days=1)
next_day = current_time + one_day
print("明天的日期是:", next_day.strftime("%Y-%m-%d"))

运行上述代码后,输出结果为:

明天的日期是: 2021-03-26

四、总结

本文主要介绍了Python中的time模块和datetime模块,它们提供了对日期和时间的处理功能。time模块能够获取当前时间、计算时间间隔、将时间格式化为字符串等;而datetime模块则提供了更高级别的时间处理功能,支持更多的格式化和操作。使用这些模块可以更加方便地处理日期和时间,帮助我们完成更多的任务。