【问题标题】:Conversion of date 8-DEC-17 to 08/12/2017 is giving 07/12/2017 in python将日期 8-DEC-17 转换为 08/12/2017 在 python 中给出 07/12/2017
【发布时间】:2018-08-16 06:01:48
【问题描述】:

我正在尝试在 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

【问题讨论】:

  • 我猜是因为时区..

标签: python datetime-format strftime mktime


【解决方案1】:

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

from datetime import datetime 
datetime.strptime(datestr, "%d-%b-%y").strftime("%d/%m/%y")

【讨论】:

  • 是的,它有效!非常感谢。发现作为 python 新手很难解决。
  • @Divya:没问题,很乐意提供帮助:)
【解决方案2】:

根据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

【讨论】:

    【解决方案3】:
    from dateutil.parser import parse
    datestr = "8-DEC-17"
    dt = parse(datestr)
    print(dt.strftime("%d/%m/%y"))
    

    【讨论】:

    • 欢迎@Divya,快乐编码:) 如果你喜欢解决方案,你可以投票支持它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-21
    • 2017-01-26
    • 1970-01-01
    • 2011-04-19
    • 1970-01-01
    相关资源
    最近更新 更多