一般我们都是用datatime
模块来处理日期、时间等数据,但是不得不说在于datatime
模块也有自身的一些限制,例如在处理时区时就会显得有些不足,这次我们来介绍一下Pendulum
模块
首先我们用pip
命令行来进行安装
pip install pendulum
pendulum
模块最令人印象深刻的功能是时区,例如我们想要知道“巴黎”此时的时间,可以这么来做
now_in_paris = pendulum.now('Europe/Paris') print(now_in_paris)
output
2022-01-22T14:59:06.484816+01:00
还可以知道当天的日期
d1 = pendulum.yesterday() # 昨天 d2 = pendulum.today() # 今天 d3 = pendulum.tomorrow() # 明天
output
2022-01-21T00:00:00+08:00 # 昨天的日期 2022-01-22T00:00:00+08:00 # 今天 2022-01-23T00:00:00+08:00 # 明天
我们还可以在时间的数据上进行加、减,调用的是add
和subtract
方法
dt = pendulum.datetime(2022, 1, 22) dt_years_add = dt.add(years=5) print(dt_years_add) dt_years_subtract = dt.subtract(years=1) print(dt_years_subtract) dt_month_add = dt.add(months=60) print(dt_month_add) dt_month_subtract = dt.subtract(months=60) print(dt_month_subtract)
output
2027-01-22T00:00:00+00:00 2021-01-22T00:00:00+00:00 2027-01-22T00:00:00+00:00 2017-01-22T00:00:00+00:00
要是我们希望将时间数据转换成字符串,就可以这么来做,代码如下
dt = pendulum.datetime(2022, 1, 23, 15, 16, 10)
要是我们需要的是前缀的日期字符串,则可以这么来做
dt.to_date_string()
output
2022-01-23
而要是我们需要的是后缀的时间字符串,则可以这么来做
dt.to_time_string()
output
15:16:10
当然我们有时候日期和时间都需要,代码如下
dt.to_datetime_string()
output
2022-01-23 15:16:10
或者是
dt.to_day_datetime_string()
output
Sun, Jan 23, 2022 3:16 PM
当然该模块还有其他很多强大的功能,具体的大家可以去看它的文档,最后我们要说的是其人性化时间的输出功能。如果我们平时用搜素引擎的话,就会看到有很多内容的时间被标成了“1天前”、“1周后”等等,这个在pendulum
模块当中也能够轻而易举的实现
print(pendulum.now().subtract(days=1).diff_for_humans()) ## '1 day ago' print(pendulum.now().diff_for_humans(pendulum.now().subtract(years=1))) ## '1 year after' print(pendulum.now().subtract(days=24).diff_for_humans()) ## '3 weeks ago'
可能有些人要是英文看不懂的话,我们也可以切换到中文,如下
print(pendulum.now().subtract(days=14).diff_for_humans()) ## '2周前' print(pendulum.now().add(seconds=5).diff_for_humans()) ## '5秒钟后'