我一直认为,本山大叔的昨天今天明天这个小品是春晚永远的经典,看完2023年春晚后(不对,我根本没看完,因为2023年春晚催眠效果太强),我更加坚定了我的想法。
闲话就到这里,本山大叔的小品讲的是过去现在和未来,我们Python没这么复杂,就是没有引申意义的昨天今天明天。
在Python中,datetime模块可以获取到不同的时间和日期。我们首选肯定是这个模块,那么,具体该如何操作呢?今天我们就跟大家一起来试试。
第一步:导包
from datetime import datetime
from datetime import timedelta
我们导入了两个子模块,一个是datetime,用来获取时间;第二个是timedelta,用来获取时间差。
我们运行一下。
有了包之后我们来看第二步,即获取现在的时间,可以精确到微秒。
在 datetime 里面有一个功能叫 now,就是来获取现在的时间。
我们把获取的时间复制给我取名的变量叫 now_time。
打印出来看一下,我们就得到了一个 datetime 格式的年月、日、时、分秒,微妙的数据。
now_time = datetime.now()
# 输出 2023-02-07 15:53:08.406752
获取今天的日期
昨天和明天的日期都可以通过今天的日期获取,所以我们要先获取到今天的日期。
我们在上面获得了现在的时间之后,接下来我们要得到今天的日期。
把 nowtime 拿过来之后,我们对它用一个方法叫 strftime。
然后这里面我们要制定好想要的格式,年月日就是 ymd,前面用百分号用横线连接。
然后把它复制给 today,也是我们取的变量名字,运行一下就得到了今天的日期是2023年2月7号。
now_time = datetime.now()
today = now_time.strftime('%Y-%m-%d')
# 输出 2023-02-07
获取昨天的日期
今天的日期获取好之后,下面我们来获取昨天的日期。
昨天的日期怎么获取呢?
后面的转换成想要的格式我们已经知道了,那就前面这个时间,现在 nowtime 指的是今天,我们要计算昨天就是往前推一天,减少一天的时间差。
这儿就把我们刚刚导入的 timedelta 这个子模块用起来,指定days=1就可以获得一个一天的时间差。
我们可以在下面运行看一下,看到确实这边得到的是一个 timedelta 的days=1 的时间差。
now_time = datetime.now()
yesterday = (now_time - timedelta(days=1)).strftime('%Y-%m-%d')
# 输出 2023-02-06
我们在这里用 nowtime 减去这个时间差就获得了昨天的时间,然后通过 strftime 指定成ymd年月日的格式运行一下,就得到了2023年2月6日,也就是昨天的日期。
获取明天的日期
与昨天的方法类似,是今天的日期加上时间差
now_time = datetime.now()
tomorrow = (now_time + timedelta(days=1)).strftime('%Y-%m-%d')
# 输出 2023-02-08
我们运行一下看看就得到了明天的日期是2023年2月8日,最后我们把结果打印出来,我们就得到了,今天的日期是2023年2月7号,昨天的日期2023年2月6号,明天的日期2023年2月8号,你学会了吗?
from datetime import datetime
from datetime import timedelta
now_time = datetime.now()
today = now_time.strftime('%Y-%m-%d')
yesterday = (now_time - timedelta(days=1)).strftime('%Y-%m-%d')
tomorrow = (now_time + timedelta(days=1)).strftime('%Y-%m-%d')
print(yesterday)
print(today)
print(tomorrow)
# 输出
2023-02-06
2023-02-07
2023-02-08
Python获取昨天今天明天日期的方法我们就介绍到这里,大家学会了吗?还有其他想学习的内容,欢迎给我留言哦!