【问题标题】:python strftime without leading 0python strftime不带前导0
【发布时间】:2020-06-01 20:20:30
【问题描述】:

它在过去 20 天内有效,我一天有两个数字

现在:

time data 'Jun  1 2020 12:00AM' does not match format '%B %d %Y %I:%M%p'

所以代码是这样的

 #last_run_db = 'Jun  1 2020 12:00AM'
 last_run_date = datetime.strptime(last_run_db, "%B %d %Y %I:%M%p")

我试过了

  %-d
  %e
  %#d

【问题讨论】:

  • -d 是你想要的,但是在windows机器上不行
  • 我们在 Windows 上有什么替代品吗?或者我也许应该在将值写入数据库时​​设置不同的格式?
  • @Chris 我没有看到任何关于%-d 的信息,或者关于以这种方式使用-# 的任何信息。我只听说过使用- 来匹配输入中的文字-
  • @KarlKnechtel 在 Unix/Linux 机器上,它将返回非零填充日,与 -m 相同
  • 啊,但是我们在这里解析日期,而不是格式化它。

标签: python strftime


【解决方案1】:

您的问题与%d 中的前导0 无关,而是由于月份的缩写。

使用%b(用于"Jun"),而不是%B(用于"June")。

【讨论】:

  • 因为上个月是 5 月,可以使用 %B 或 %b 读取 :)
【解决方案2】:

它在过去 20 天内有效,我一天有两个数字

关于过去 20 天的另一件有趣的事情是,它们是在 5 月,该月的全名由三个字母组成。 %B是月份的全名;你想要%b 这个三字母缩写。请参阅documentation

【讨论】:

    猜你喜欢
    • 2010-10-28
    • 1970-01-01
    • 2015-09-18
    • 1970-01-01
    • 1970-01-01
    • 2011-04-19
    • 1970-01-01
    • 2013-12-29
    • 2015-04-14
    相关资源
    最近更新 更多