Python 如何使用 Datetime 模块获取当天任意时刻
温馨提醒
总结摘要
通过字符串拼接或者 datetime.timedelta 模块
datetime 的时间魔法
用过 python 中 datetime 模块的话
都知道可以通过 datetime.now()
或者 datetime.today()
获取到当前系统的年、月、日、时、分、秒
有没有办法,能在程序运行的时候,获取到系统当天的任意时刻呢?也就是时:分:秒
有两种方案可以尝试,需要预热的知识:
- datetime.datetime.now() or datetiime.datetime.today() – 获取系统当前时间
- datetime.strftime() – 转化时间对象为指定格式的字符串
- datetime.strptime() – 指定格式的字符串转化时间对象
- datetime.timedelta() – 通过增量,修改时间对象
一、字符串拼接法
两行代码实现
|
|
一起来看看代码的实现思路:
- 先通过
datetime.strftime()
方法得到当天的年、月、日
的格式化字符串; - 然后通过
datetime.strptime()
方法,当天的年、月、日
字符串,拼接上指定的时刻,如:“05:30”。
datetime 的 strptime
方法,会将我们指定的时间,转换为一个datetime
对象
二、“时间滑块法” – timedelta
如果把时间想象成一个从左往右的慢慢滑动的滑块… …
那么,我们就可以任意把时间 “拨动” 到任意时刻了不是么?
我们需要借助 timedelta
的 “时间魔法”,把时间拨动一下,得到我们想要的时间
|
|
一起来看看代码的实现思路,是怎么拨动时间的呢?
- 通过
datetime.today()
得到当前的系统时间; - 借助
timedelta
(表示时间的增量,用绝对值的思维),让时间对象today
,减去 “自己”已经 走过的时间,使得today
时间 “归零”; - 让后,再通过
timedelta
,给清零的时间对象today
一个新的增量,通过传入的参数H、M、S
。也就是,我们自己拨动了表盘的时针、分针、秒针
在这里,我们也能操控时间了 XD
三、使用场景
用上面的任意一种方法
得到的用于界定时间范围的datetime
对象
就可以用于当天时间数据的对比了
举个小例子:
你喜欢哪一种方案呢?