将日期 8-DEC-17 转换为 08/12/2017 在 python 中给出 07/12/2017

Conversion of date 8-DEC-17 to 08/12/2017 is giving 07/12/2017 in python

我正在尝试格式化 python 中的日期时间,这就是我正在尝试的:

import time

datestr = "8-DEC-17"
v=time.strptime(datestr,"%d-%b-%y")
l = time.mktime(v) 
print(time.strftime("%d/%m/%y ", time.gmtime(l)))

这段代码的输出是: 07/12/17这不是我想要的

我期待:08/12/17

您可以使用 datetime,它会更短一些并给出您想要的结果:

from datetime import datetime 
datetime.strptime(datestr, "%d-%b-%y").strftime("%d/%m/%y")
from dateutil.parser import parse
datestr = "8-DEC-17"
dt = parse(datestr)
print(dt.strftime("%d/%m/%y"))

根据https://docs.python.org/3/library/time.html#time.mktimemktime()localtime()的反函数。因此,您需要使用 localtime() 而不是 gmtime() 来打印结果:

print(time.strftime("%d/%m/%y ", time.localtime(l)))

输出08/12/17