问题描述
我正在从第三方api中提取数据,我们必须提供数据的日期范围。以下是如何应用我对startDate
感到困惑的日期范围的方法,所以它是昨天的日期?
params = {
"queryId": query_id,"startDate": "2020-01-01","endDate": datetime.strftime(datetime.today(),"%Y-%m-%d"),"pageSize": "5000"
}
我希望将startdate
设置为昨天的日期。
解决方法
{[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}}