如何为缺失秒字段的datetime对象添加零秒
给Datetime对象补零秒的几种方法
嘿,这事儿好办!在Python里处理这种需求有几个简单直接的办法,我给你一一说明:
方法1:用replace()方法(最推荐)
Datetime对象是不可变的,所以我们可以用replace()方法创建一个新的对象,直接把秒数设置为0。不管原对象有没有显式设置秒,这个方法都能确保秒数是00:
import datetime # 你的原始datetime对象 original_dt = datetime.datetime(2017, 1, 13, 23, 50) # 替换秒数为0 new_dt = original_dt.replace(second=0) print(new_dt) # 输出: 2017-01-13 23:50:00
方法2:如果是从字符串解析而来(提前处理)
如果你的datetime对象是从字符串转换来的,那在解析的时候就可以指定包含秒的格式,直接生成带00秒的对象:
from datetime import datetime # 假设原始字符串是这样的 date_str = "2017-01-13 23:50" # 用包含秒的格式解析,秒会自动补0 dt = datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S") # 或者先按原格式解析,再用replace补秒,效果一样 dt = datetime.strptime(date_str, "%Y-%m-%d %H:%M").replace(second=0)
补充说明
其实你创建的datetime.datetime(2017, 1, 13, 23, 50)对象本身的秒数已经是0了(Python的datetime构造函数默认秒为0),只是在打印或者显示的时候可能没有输出秒部分。用replace(second=0)可以明确地生成一个带秒数的对象,确保后续处理时不会出现歧义。
内容的提问来源于stack exchange,提问作者thileepan
相关产品推荐
相关产品推荐

