【问题标题】:Subtracting two dates in Python在 Python 中减去两个日期
【发布时间】:2014-07-31 16:05:35
【问题描述】:

我想减去两个日期

即我在String 类型的文本框中输入了一个日期 如下所示

type(waitForObject(":VWAP Calculator_LCDateTextField"), "07/24/14")

我正在捕捉该日期,如下所示

Current = (waitForObject(":VWAP Calculator_LCDateTextField").text)

所以,现在我想用我当前的系统日期减去捕获的日期并得到天数的差异。我尝试了很多方法,但都没有成功。有人请尽快帮助解决这个问题。

P.S:我有 python 2.4 和 2.7

【问题讨论】:

  • 您可以使用 2.4 或 2.7,还是您有偏好?我想答案可能会有所不同,具体取决于答案。
  • 您应该查看datetime 模块,特别是关于timedeltas 的部分。您所追求的是 Python 中的 内置 功能。
  • @TheSoundDefense 它是 Python 2.7
  • @g.d.d.c 我已经浏览了该模块并尝试了很多方法,但我总是遇到问题。请推荐我
  • @eswar - 如果您已经尝试过一些事情,请在您的问题中包含该信息。描述你尝试了什么以及它是如何失败的。见stackoverflow.com/help/how-to-ask

标签: python date


【解决方案1】:

试试这样的:

>>> from datetime import datetime
>>> x = datetime.strptime("07/24/14", "%m/%d/%y")
>>> y = datetime.strptime("07/30/14", "%m/%d/%y")
>>> x-y
datetime.timedelta(-6)
>>> (x-y).days
-6

这使用 datetime.strptime 方法将字符串转换为 datetime 对象。然后您可以简单地对日期时间对象进行算术运算。结果将是一个 timedelta(基本上是时间差异),如果您希望差异以天为单位,您可以调用 .days on。您可以阅读所有这些功能here

如果你想使用这些方法获取当前日期,很简单:

>>> from datetime import datetime
>>> datetime.now()
datetime.datetime(2014, 7, 31, 12, 16, 12, 966428)

它会返回另一个日期时间对象,然后您可以对其执行日期算术。

【讨论】:

  • 我想用系统日期 Alex 减去文本框中输入的日期。
  • @eswar 如果不将字符串转换为其他内容,您将无法做到这一点。亚历克斯的回答给出了可能是最简单的方法。
  • @TheSoundDefense:我已将字符串转换为以下日期类型 Current = datetime.Parse(waitForObject(":VWAP Calculator_LCDateTextField").text) dt1 = (waitForObject(":VWAP Calculator_LCDateTextField").text) enterdate =datetime.strftime(dt1, "%Y/%m/%d") 我该如何从这里开始
  • @eswar 得到当前的datetime,如上所示,然后减去并得到天数,他也在上面显示。
  • 下面的代码是否正确。当前 = datetime.Parse(waitForObject(":VWAPCalculator_LCDateTextField").text) dt1 = (waitForObject(":VWAP Calculator_LCDateTextField").text) 输入日期 =datetime.strftime(dt1, "%Y/%m/%d") dt2 = datetime.now() dt2.dt1
【解决方案2】:
  1. 将字符串解析为datetime对象(Converting string into datetime

  2. 减去datetime 对象,您将得到一个具有days 属性的timedelta 对象

增量 = dtend - dtstart 打印 delta.days

【讨论】:

  • 我试过这个 Current = datetime.Parse(waitForObject(":VWAP Calculator_LCDateTextField").text) dt1 = (waitForObject(":VWAP Calculator_LCDateTextField").text) 输入日期 =datetime.strftime(dt1 , "%Y/%m/%d")
  • 我该如何从这里开始
猜你喜欢
  • 1970-01-01
  • 2012-06-07
  • 2011-02-21
  • 1970-01-01
  • 1970-01-01
  • 2012-10-28
  • 2013-03-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多