重新格式化日期时间对象以使用斜杠而不是破折号

use*_*931 5 python datetime

我正在尝试将日期字符串:标准化'6-3-1975'为以下格式的日期时间对象:'06/03/1975'

我有这个方法:

def normalizeDate(date):
    formatted_date = date.replace('-', '/')
    date_obj = datetime.strptime(formatted_date, '%m/%d/%Y').date()
    # date = datetime.strftime(date_obj, '%m/%d/%Y')
    # print(date)
    return date_obj
Run Code Online (Sandbox Code Playgroud)

.date()当使用破折号打印格式时,我也尝试使用strftime,但这会将 date_object 转换回字符串。有没有办法重新格式化日期以使用斜杠并且仍然是日期时间对象?

Vas*_* G. 1

您可以自己处理日期字符串,为其提供所需的格式,然后将其转换为datetime对象:

def normalizeDate(date):
    newDate = '/'.join(str.zfill(elem,2) for elem in date.split('-'))
    date_obj = datetime.strptime(newDate, '%m/%d/%Y').date()
    return date_obj
Run Code Online (Sandbox Code Playgroud)

为了将日期打印为该特定格式,您必须使用创建的strftimedatetime对象:

inDate = '6-3-1975'

d = normalizeDate(inDate)
print(d.strftime('%m/%d/%Y'))
print(type(d))
Run Code Online (Sandbox Code Playgroud)

这是设置对象格式的唯一方法datetime