【问题标题】:datetime.strptime formattingdatetime.strptime 格式
【发布时间】:2019-03-08 04:41:09
【问题描述】:

我的 CSV 文件中的日期时间如下所示:

2011/1/1 0:00
2011/1/1 0:30
2011/1/1 1:00

当我跑步时:

date = datetime.strptime(row[0], '%Y/%m/%d %H:%M')

我得到的日期时间输出为:

[datetime.datetime(2011, 1, 1, 0, 0)]
[datetime.datetime(2011, 1, 1, 0, 30)]

如何将其格式化为原始日期时间?

【问题讨论】:

  • 提示:strptimestrftime 采用相同的格式字符串。一个用于解析,另一个用于格式化。
  • date.strftime('%Y/%m/%d %H:%M')

标签: python python-3.x python-datetime


【解决方案1】:

您已经将字符串解析为日期时间对象。这是通过使用datetime.datetime.strptime() 完成的。要将对象格式化回字符串,您可以使用相同的语法,但使用方法 datetime.datetime.strftime(),例如:

date.strftime('%Y/%m/%d %H:%M')

另见documentation

如果您希望 完全 输入您的输入字符串(不带前导 0),您可以在必要时在百分比运算符和指令字符之间添加连字符,例如:

date.strftime('%Y/%-m/%-d %-H:%M')

这在Python strftime - date without leading 0 中有很好的解释,但它是platform dependent

【讨论】:

    【解决方案2】:

    尝试以字符串格式打印日期:

    from datetime import datetime    
    
    row = "2011/1/1 0:30"
    date = datetime.strptime(row, '%Y/%m/%d %H:%M')
    print str(date)
    

    输出:

    '2011-01-01 00:30:00'
    

    【讨论】:

    • 好的。我现在明白了。谢谢!
    【解决方案3】:

    您当前所做的是从字符串和格式化程序创建一个日期时间对象,如 here 所示。可能在您的代码中的某个地方,您将此对象放在一个列表中并引用它。 Python 不知道你想用它以某种字符串格式打印容器(列表)。

    如果我理解您的问题,您想打印/返回元素而不是容器。如下图:

    import datetime
    
    l = []
    today = datetime.date.today()
    l.append(today)
    #what you have
    print(l)
    #addressing just the first element
    print(l[0])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-01
      • 1970-01-01
      • 2019-08-12
      • 1970-01-01
      • 2015-02-24
      • 1970-01-01
      相关资源
      最近更新 更多