【问题标题】:How to subtract two different field date in python?如何在python中减去两个不同的字段日期?
【发布时间】:2012-12-17 12:56:19
【问题描述】:

我有一些问题, 我用python。

我有 2 个变量,比如

ads = fields.Date('Admission Date', help='Date of admission')
dds = fields.Date('Discharge Date', help='Date of discharge')

我有一个变量来减去日期,

los=ads-dds

但是,我有一些错误:

unsupported operand type(s) for -: 'datetime.datetime' and 'datetime.date'

我应该怎么做才能得到los的结果?

【问题讨论】:

  • 我有一些问题,我使用 python。。不,您正在使用 Python,这太棒了!一点问题都没有! :-P
  • 两个值必须相同。因此,您需要将日期时间转换为日期,反之亦然。
  • @user1833746,你的意思是“必须是同一类型”,不是吗?

标签: python date python-datetime


【解决方案1】:

其中一个字段是date 对象,另一个是datetime 对象。你必须决定你想要减法是什么意思意思

例如,您可以将 date 对象转换为具有固定时间的 datetime 对象,例如午夜:

los = ads - datetime.datetime.combine(dds, datetime.time.min)

datetime.datetime.combine() 接受一个date 和一个time 对象并创建一个新的datetime 对象;我们使用datetime.time.min 作为time 表示午夜的对象的简单快捷方式。

或者,您可以将 datetime 对象转换为 date 对象,然后减去:

los = ads.date() - dds

datetime.date() method 仅返回 datetime 对象的日期部分。结果是一个datetime.timedelta() 对象,表示两个日期之间的天数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-21
    • 1970-01-01
    • 2012-10-28
    • 2013-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多