Python日期和时间处理函数详解
Python是一种高级的、解释性的、面向对象的动态语言,由于其简洁易学、功能丰富、可读性强等特点,在数据处理、科学计算、网络编程等领域得到了广泛的应用。Python提供了丰富的标准库和第三方库,方便程序员进行各种操作。
在Python程序开发过程中,处理日期和时间的任务是常见的。Python提供了强大的日期和时间处理函数,使得程序员可以轻松地进行时间的计算和处理。本文将详细介绍Python日期和时间处理函数的使用方法,方便程序员进行开发。
1. 常用日期和时间模块
Python提供了两个基本的日期和时间模块:time模块和datetime模块。其中,time模块只处理时间的表达和格式化,datetime模块除了时间的处理外还提供了日期的处理,可以方便地进行日期和时间的转换和计算。这两个模块都需要导入才能使用,可以使用import关键字进行导入,如下所示:
import time
import datetime
2. time模块函数
time模块提供了丰富的日期和时间处理函数,可以方便地进行时间的操作。常用的time模块函数如下:
2.1 time()
time()函数用于获取当前时间的时间戳(从1970年1月1日0时0分0秒开始计算)。它没有参数,返回一个浮点数,单位为秒。示例代码如下:
import time
t = time.time()
print("当前时间戳为:", t)
运行结果如下:
当前时间戳为: 1625231494.7890456
2.2 localtime()
localtime()函数用于将时间戳转换为本地时间。它有一个可选的参数,表示时间戳,默认为time.time()的返回值。它返回一个包含本地时间的struct_time对象。struct_time对象包含了以下属性:
tm_year:年份;
tm_mon:月份(1-12);
tm_mday:日(1-31);
tm_hour:小时(0-23);
tm_min:分钟(0-59);
tm_sec:秒(0-59);
tm_wday:星期几(0-6);
tm_yday:一年中的第几天(1-366);
tm_isdst:是否为夏令时(0表示不是,1表示是,-1表示不确定)。
示例代码如下:
import time
t = time.time()
local_time = time.localtime(t)
print("本地时间为:", local_time)
运行结果如下:
本地时间为: time.struct_time(tm_year=2021, tm_mon=7, tm_mday=2, tm_hour=14, tm_min=4, tm_sec=54, tm_wday=4, tm_yday=183, tm_isdst=0)
2.3 strftime()
strftime()函数用于将一个时间元组(struct_time对象)或时间戳转换为指定格式的字符串。它有两个参数,其中 个参数是指定格式的字符串,第二个参数是一个时间元组或时间戳。常用的格式符如下:
格式符 含义
%Y 年份(4位数)
%m 月份(01-12)
%d 日(01-31)
%H 小时(00-23)
%I 小时(01-12)
%M 分钟(00-59)
%S 秒(00-59)
%p AM或PM
%A 星期几(英文全名)
%B 月份(英文全名)
%c 本地日期和时间
%x 本地日期
%X 本地时间
%Z 时区名称
示例代码如下:
import time
t = time.time()
local_time = time.localtime(t)
time_str = time.strftime("%Y-%m-%d %H:%M:%S", local_time)
print("本地时间字符串为:", time_str)
运行结果如下:
本地时间字符串为: 2021-07-02 14:12:58
2.4 sleep()
sleep()函数用于让程序暂停执行一定时间。它的参数为暂停的时间(单位为秒),可以是一个小数,表示小数位的秒数。示例代码如下:
import time
print("开始暂停3秒")
time.sleep(3)
print("暂停结束")
运行结果如下:
开始暂停3秒
暂停结束
3. datetime模块函数
datetime模块提供了更为强大的日期和时间处理函数,尤其是在处理日期上更为方便。常用的datetime模块函数如下:
3.1 datetime()
datetime()函数用于创建一个datetime对象,可以用它来表示日期和时间。它有四个必选参数year、month、day、hour、minute、second,以及一个可选参数microsecond,默认为0。示例代码如下:
import datetime
d = datetime.datetime(2021, 7, 2, 14, 28, 0)
print("创建的datetime对象为:", d)
print("年份为:", d.year)
print("月份为:", d.month)
print("日为:", d.day)
print("小时为:", d.hour)
print("分钟为:", d.minute)
print("秒为:", d.second)
print("微秒为:", d.microsecond)
运行结果如下:
创建的datetime对象为: 2021-07-02 14:28:00
年份为: 2021
月份为: 7
日为: 2
小时为: 14
分钟为: 28
秒为: 0
微秒为: 0
3.2 today()
today()函数用于获取当前日期。它没有参数,返回一个表示当前日期的datetime对象。示例代码如下:
import datetime
today = datetime.datetime.today()
print("今天的日期为:", today)
运行结果如下:
今天的日期为: 2021-07-02 14:34:02.963260
3.3 date()
date()函数用于创建一个date对象,表示一个日期。它有三个必选参数year、month、day。示例代码如下:
import datetime
d = datetime.date(2021, 7, 2)
print("创建的date对象为:", d)
print("年份为:", d.year)
print("月份为:", d.month)
print("日为:", d.day)
运行结果如下:
创建的date对象为: 2021-07-02
年份为: 2021
月份为: 7
日为: 2
3.4 time()
time()函数用于创建一个time对象,表示一个时间。它有三个必选参数hour、minute、second,以及一个可选参数microsecond,默认为0。示例代码如下:
import datetime
t = datetime.time(14, 45, 0)
print("创建的time对象为:", t)
print("小时为:", t.hour)
print("分钟为:", t.minute)
print("秒为:", t.second)
print("微秒为:", t.microsecond)
运行结果如下:
创建的time对象为: 14:45:00
小时为: 14
分钟为: 45
秒为: 0
微秒为: 0
4. 日期和时间的计算
在Python中,日期和时间的计算非常方便。可以使用datetime模块中的timedelta对象进行计算。
timedelta对象有三个属性:days、seconds、microseconds。它可以表示一段时间,支持加减法运算。例如,可以使用timedelta对象实现日期加减运算,如下所示:
import datetime
current_time = datetime.datetime.now()
print("当前时间为:", current_time)
a_day = datetime.timedelta(days=1)
yesterday = current_time - a_day
print("昨天的时间为:", yesterday)
运行结果如下:
当前时间为: 2021-07-02 14:43:23.444857
昨天的时间为: 2021-07-01 14:43:23.444857
5. 日期和时间的比较
在Python中,可以使用相关函数比较不同的日期或时间。
