Python中如何拆分当前日期时间,仅提取日期、小时与分钟级别的时间值
Python实现时间截取至分钟粒度的方案
针对拿到的带秒、微秒的系统时间,有两种适配不同场景的实现方式,均基于datetime内置API实现,稳定性远高于字符串硬截断的操作:
- 仅需格式化文本输出(适合日志、页面展示等场景)
直接使用strftime按目标格式格式化,不需要额外字段处理,代码示例:
运行后输出结果和目标格式完全匹配,示例输入对应的输出即为import datetime current_time = datetime.datetime.now() # 格式匹配 年-月-日 时:分 粒度 time_minute_level = current_time.strftime("%Y-%m-%d %H:%M") print(time_minute_level)2021-03-08 23:22。 - 需要保留原datetime对象(适合后续时间计算、比较等场景)
如果后续要对时间做差值计算、时区转换等操作,直接转字符串会带来类型兼容问题,可以用replace方法将不需要的秒、微秒字段直接清零,得到精准到分钟的datetime对象:import datetime current_time = datetime.datetime.now() # 将秒、微秒字段置0,保留到分钟粒度 time_minute_level = current_time.replace(second=0, microsecond=0) # 需要展示时再格式化为目标字符串即可 print(time_minute_level.strftime("%Y-%m-%d %H:%M"))
避坑提示:不要采用对原输出字符串做硬切片的方式(比如截取字符串前16位),这种方式强依赖默认的时间输出格式,一旦系统时区配置、本地化规则变动,很容易出现截断错位,稳定性较差。
内容的提问来源于stack exchange,提问作者TechG
相关产品推荐
相关产品推荐

