【问题标题】:How to convert datetime to date only? (Odoo13)如何仅将日期时间转换为日期? (Odoo13)
【发布时间】:2020-12-05 09:24:54
【问题描述】:

我想以 dd/MM/yyyy 格式显示日期,而不是 dd/mm/yyyy hh:mm:ss

当我使用 :strftime('%Y-%m-%d') 时,格式不会改变。

date = fields.Datetime('Date', default=fields.Datetime.now().strftime('%Y-%m-%d'))

【问题讨论】:

  • 当然,你只更改默认值。尝试将fields.Datetime 更改为fields.Date
  • stackoverflow.com/questions/3743222/…> 抱歉,如果可以的话,我会使用评论。
  • 您想更改一个字段的日期格式吗?如果您不想要我们将其声明为日期时间字段的时间?!!你能解释一下你在做什么吗

标签: python odoo


【解决方案1】:

用于显示DateDatetime字段的格式取决于小部件的类型,您可以在init function中查看:

format : this.type_of_date === 'datetime' ? time.getLangDatetimeFormat() : time.getLangDateFormat()

datetime 小部件将日期小部件和 defines its type 扩展为 datetime

要强制Datetime 字段使用日期格式显示其值,请尝试将widget 属性设置为date

<field name='date' widget='date'/>

【讨论】:

    【解决方案2】:

    使用 Date() 函数将datetime.datetime 对象转换为date 对象。

    例如,您有字段 date,它是 datetime.datetime 对象,因此您可以做的是,获取此字段并像这样抓取 date.date()

    【讨论】:

      【解决方案3】:

      只需使用:

      date = fields.Date(string='Date', default=fields.Date.context_today)
      

      default= 仅设置新对象的值。它不会改变它的格式。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-14
        • 2010-11-03
        • 1970-01-01
        • 2019-09-22
        • 1970-01-01
        • 1970-01-01
        • 2014-07-01
        相关资源
        最近更新 更多