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

Python中datetime模块处理日期和时间函数的使用

发布时间:2023-06-20 04:56:35

在Python中,时间和日期的处理非常重要。常用的处理日期和时间的模块就是datetime模块。本文将围绕datetime模块对日期和时间的处理进行详细介绍。

datetime模块

datetime模块定义了如下几个类:

1. datetime.date:表示日期的类,包含年、月、日。

2. datetime.time:表示时间的类,包含小时、分钟、秒、微秒。

3. datetime.datetime:表示日期和时间的类,其实是date和time的组合。

4. datetime.timedelta:表示两个日期或时间的差,可以通过“+”“-”来计算两个日期或时间的加减。

5. datetime.tzinfo:与时区有关的类,可以设置不同的时区。

datetime类

datetime类的构造函数如下:

datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]])

示例:

from datetime import datetime
dt = datetime(2020, 1, 1, 10, 10, 10)
print(dt)

输出结果:

2020-01-01 10:10:10

从上面的例子可以看出,datetime前面需要加上模块名。

datetime类中有一些常用的属性和方法,下面我们就来介绍一下:

- year:获取年份。

- month:获取月份。

- day:获取日。

- hour:获取小时。

- minute:获取分钟。

- second:获取秒。

- microsecond:获取微秒。

- date():返回一个表示日期的date对象。

- time():返回一个表示时间的time对象。

- weekday():返回星期几,0表示周一,1表示周二......

- now():获取当前日期和时间。

- strftime():将datetime对象转换成字符串。

- strptime():将字符串转换成datetime对象。

示例:

from datetime import datetime
dt = datetime(2020, 1, 1, 10, 10, 10)
print(dt.year)
print(dt.month)
print(dt.day)
print(dt.hour)
print(dt.minute)
print(dt.second)
print(dt.microsecond)
print(dt.date())
print(dt.time())
print(dt.weekday())
print(datetime.now())
print(dt.strftime('%Y/%m/%d %H:%M:%S'))
print(datetime.strptime('2020-01-01 10:10:10', '%Y-%m-%d %H:%M:%S'))

输出结果:

2020
1
1
10
10
10
0
2020-01-01
10:10:10
2
2021-10-25 23:57:50.233839
2020/01/01 10:10:10
2020-01-01 10:10:10

timedelta类

timedelta类可以表示两个日期或时间之间的差。

timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)

示例:

from datetime import datetime, timedelta
dt1 = datetime(2020, 1, 1)
dt2 = datetime(2021, 1, 1)
td = dt2 - dt1
print(td)

输出结果:

366 days, 0:00:00

从上面的例子可以看出,td返回的是一个timedelta类型的对象,它其实就是对两个日期或时间的差的封装。

使用timedelta对象可以对日期或时间进行加减,计算两个日期或时间的差等操作。

示例:

dt3 = dt1 + td
print(dt3)
td1 = timedelta(days=1, hours=2, minutes=3, seconds=4, microseconds=5)
print(td1)
print(dt1 + td1)
print(dt1 - td1)

输出结果:

2021-01-01 00:00:00
1 day, 2:03:04.000005
2020-01-02 02:03:04.000005
2019-12-30 21:56:55.999995

总结

datetime模块提供了大量处理日期和时间的方法,使得我们可以方便地进行日期和时间的计算。在实际应用中,我们可以根据需要灵活使用datetime类和timedelta类,从而实现各种日期和时间的运算。