Python中datetime模块处理日期和时间函数的使用
在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类,从而实现各种日期和时间的运算。
