【问题标题】:Get current date from datetime.datetime从 datetime.datetime 获取当前日期
【发布时间】:2019-09-30 11:03:26
【问题描述】:

我正在尝试获取当前日期,以便将其传递给 SQL 中的 DATE 字段。我正在使用 datetime.datetime,下面是我的代码:

from datetime import datetime

dt = datetime.strptime(datetime.today().date(), "%m/%d/%Y").date()

但是,我收到了这个错误:

TypeError: strptime() argument 1 must be str, not datetime.datetime

如何解决上述问题?我仍然对 datetime 和 datetime.datetime 感到困惑,我想继续使用 from datetime import datetime 而不是 import datetime。

如何解决上述问题?谢谢

【问题讨论】:

  • 使用datetime.strftime

标签: python python-3.x datetime


【解决方案1】:

如果你仔细看,下面语句的结果,

>>> datetime.today().date()
datetime.date(2019, 9, 30)
>>> str(datetime.today().date())
'2019-09-30'

您会注意到返回的日期时间是- 分隔的,您必须将其显式转换为字符串值。因此,要使上述语句起作用,请将其更改为:

dt = datetime.strptime(str(datetime.today().date()), "%Y-%M-%d").date()

然后将其更改为您希望使用strftime 的任何格式(在您的情况下>>> "%d/%m/%Y")

>>> dt.strftime("%d/%m/%Y")
'30/01/2019'

【讨论】:

    【解决方案2】:

    只需使用datetime.strftime:

    from datetime import datetime
    
    dt = datetime.today().strftime("%m/%d/%Y")
    print(dt)
    

    打印:

    '09/30/2019'
    

    strptime 接受一个字符串并生成一个datetime 对象。而strftime 则完全相反,它采用datetime 对象并返回一个字符串。

    【讨论】:

      猜你喜欢
      • 2023-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多