如何使用strftime获取一天的日期范围? 说明语法

问题描述

我正在从第三方api中提取数据,我们必须提供数据的日期范围。以下是如何应用我对startDate感到困惑的日期范围的方法,所以它是昨天的日期?

params = {
        "queryId": query_id,"startDate": "2020-01-01","endDate": datetime.strftime(datetime.today(),"%Y-%m-%d"),"pageSize": "5000"
    }

我希望将startdate设置为昨天的日期。

解决方法

您需要datetime.timedelta

{[1.1.0.0,A]},[1.1.1.0,B],[1.1.1.2,C],[1.1.1.3,C]

function Get-Listver { PROCESS { [xml] $versionInfo = Get-Content -Raw -Path "C:\test\test.xml" $firstXML = Select-Xml -Xml $versionInfo -XPath "//*[@name='testR0']" $secondXML = Select-Xml -Xml $versionInfo -XPath "//*[@name='testR3']" $packagecollection = Get-AllPackageVersion $secondXML.Node $firstXML.Node return $packagecollection } } function Get-AllPackageVersion { [CmdletBinding()] param ( $secondXML,$firstXML ) process { $packagecollection = New-Object System.Collections.Generic.Dictionary"[String,String]" if($secondXML.type -eq 'B'){ $preReq = $secondXML.ChildNodes | Where-Object {$_.inc -eq "true"} if($preReq) { foreach($pq in $preReq) { $testver = $pq.testversion $testtyp = $pq.type $packagecollection.Add("$testver","$testtyp") } } } $testver = $secondXML.testversion $testtyp = $secondXML.type $packagecollection.Add("$testver","$testtyp") if($secondXML.ParentNode.Name -ne $firstXML.ParentNode.Name -and $secondXML.ParentNode.Name -ne $firstXML.Name){ Get-AllPackageVersion $secondXML.ParentNode $firstXML } if ($packagecollection.count -gt 1) { $packagecollection = $packagecollection.GetEnumerator() | sort -Property key } return $packagecollection; } } Get-Listver 的可能性是

from datetime import datetime,timedelta

today = datetime.today().strftime("%Y-%m-%d")
print(today)     # 2020-08-13

yesterday = (datetime.today() - timedelta(days=1)).strftime("%Y-%m-%d")
print(yesterday) # 2020-08-12
,

您可以使用timedelta对象来解决此问题。

摘自python的官方文档,

说明

timedelta 对象表示持续时间,即两个日期或时间之间的差。

语法

类datetime.timedelta(天= 0,秒= 0,微秒= 0,毫秒= 0,分钟= 0,小时= 0,星期= 0)

因此,您可以使用timedelta对象表示1天,然后从当天减去1天以获取昨天的日期。解决方法如下,


from datetime import datetime,timedelta  # Make sure to import timedelta

params = {
        "queryId": query_id,"startDate": datetime.strftime(datetime.today() - timedelta(days=1),"%Y-%m-%d"),"endDate": datetime.strftime(datetime.today(),"pageSize": "5000"
    }
  • 有关时间增量here的更多信息。
,

如果"endDate"是今天

datetime.today()

那么昨天只能比那一天少

datetime.today() - timedelta(days=1)

显然,您可以像使用datetime.strftime一样将其传递给"startDate"的{​​{1}}