Python函数实现日期和时间处理
Python拥有强大的日期和时间处理库,可以使用官方标准库datetime来处理日期和时间相关的操作,也可以使用第三方库如arrow、pendulum、dateutil等。
1. datetime库的使用
datetime库是Python中标准的日期和时间处理库,通过它可以实现时间的表示、计算、日期格式化等操作。
(1)时间表示
datetime库中定义了三个类来表示时间:date、time和datetime,分别表示日期、时间和日期时间。它们的构造函数如下:
import datetime d = datetime.date(year, month, day) t = datetime.time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None, fold=0) dt = datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None, fold=0)
其中,year、month、day、hour、minute、second、microsecond分别表示年、月、日、时、分、秒、微秒,tzinfo表示时区信息,fold表示可选的闰秒信息。
(2)日期计算
可以对日期进行加减计算,例如:
import datetime d1 = datetime.date(2021, 9, 1) d2 = datetime.date(2021, 9, 11) delta = d2 - d1 print(delta.days) # 输出:10
(3)日期格式化
可以通过strftime方法将日期格式化为指定的字符串,例如:
import datetime
dt = datetime.datetime.now()
print(dt.strftime('%Y-%m-%d %H:%M:%S')) # 输出:2021-09-21 10:05:10
2. arrow库的使用
arrow是一个易用的日期和时间处理库,它提供了友好的API和各种可选的输出格式。
(1)时间表示
arrow库中提供的Arrow类用于表示时间,可以通过now、get、datetime等方法获取当前时间、指定时间、转化为datetime等。
import arrow
now = arrow.now()
get = arrow.get('2021-09-01')
datetime = arrow.Arrow(2021, 9, 11, 10, 0, 0)
print(now, get, datetime) # 输出:2021-09-21T10:13:26.258952+08:00 2021-09-01T00:00:00+00:00 2021-09-11T10:00:00+00:00
(2)日期计算
可以使用replace、shift等方法对日期进行加减计算。
import arrow
dt = arrow.get('2021-09-11')
print(dt.shift(days=10)) # 输出:2021-09-21T00:00:00+00:00
(3)日期格式化
可以使用format方法将日期格式化为指定的字符串,例如:
import arrow
dt = arrow.now()
print(dt.format('YYYY-MM-DD HH:mm:ss')) # 输出:2021-09-21 10:18:24
3. pendulum库的使用
pendulum是一个较新的Python日期和时间处理库,提供了类似于moment.js的API。
(1)时间表示
pendulum库中提供的DateTime类用于表示时间,可以通过now、parse、create等方法获取当前时间、指定时间、通过年、月、日、时、分、秒获取时间等。
import pendulum
now = pendulum.now()
parse = pendulum.parse('2021-09-01')
create = pendulum.create(2021, 9, 11)
print(now, parse, create) # 输出:2021-09-21T10:25:17.123641+08:00 2021-09-01T00:00:00+00:00 2021-09-11T00:00:00+00:00
(2)日期计算
可以使用加减号对日期进行加减计算,也可以使用add和subtract方法。
import pendulum
dt = pendulum.parse('2021-09-11')
print(dt.add(days=10)) # 输出:2021-09-21T00:00:00+00:00
(3)日期格式化
可以使用format方法将日期格式化为指定的字符串,例如:
import pendulum
dt = pendulum.now()
print(dt.format('YYYY-MM-DD HH:mm:ss')) # 输出:2021-09-21 10:40:10
4. dateutil库的使用
dateutil是一个强大的日期和时间处理库,相比于其他库,它提供了更多的解析、转化、计算、格式化等功能。
(1)时间解析
可以使用parser.parse方法将字符串解析为datetime对象。
import dateutil.parser as parser
d = parser.parse('2021-09-01')
print(d) # 输出:2021-09-01 00:00:00
(2)日期计算
可以对日期进行加减计算。
import dateutil.relativedelta as relativedelta import datetime d1 = datetime.datetime(2021, 9, 1) d2 = datetime.datetime(2021, 9, 11) delta = relativedelta.relativedelta(d2, d1) print(delta.days) # 输出:10
(3)日期格式化
可以使用strftime方法将日期格式化为指定的字符串,例如:
import datetime
d = datetime.datetime.now()
print(d.strftime('%Y-%m-%d %H:%M:%S')) # 输出:2021-09-21 11:09:24
总之,Python提供了很多处理日期和时间的库,可以根据不同场景选择使用不同的库来实现日期和时间处理。在实际开发中,对日期和时间格式、时区的处理比较重要,需要根据具体需求选择相应的库进行处理。
