欢迎访问宙启技术站
智能推送

Python日期和时间处理函数详解

发布时间:2023-05-21 20:35:04

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中,可以使用相关函数比较不同的日期或时间。