通过PowerShell,我正在调用SOA服务。除了一个字段是DateField 外,调用正常
$dataTeste = '09-JAN-18'
$dataTeste = [datetime]::ParseExact($dataTeste, "dd-MMM-yy", $null)
$dataTesteSeg = $dataTeste.ToString("yyyy-MM-dd")
$dataTesteSeg | Out-File -FilePath C:temptestefileseg.txt -Append
$posTangivelGerarReqAud.idSistemaOrigem = "PowerShell"
$posTangivelGerarReqAud.idUtilizador = "user186"
$posTangivelGerarReqAud.tsInvocacao = $dataTesteSeg
$posTangivelGerarReqGen.idDocumento = "DRU_0012"
$posTangivelGerarReqGen.tipoEvento = "E"
$posTangivelGerarReqAud.tsInvocacao | Out-File -FilePath C:temptestefile.txt -Append
因此,为了调试这个过程,我将变量写入日志文件,这样我就可以告诉你$dataTesteSeg的值为"2018-01-09",这是我假装传递给webservice的值,然而,在我将变量与webservice参数关联后,它变得不同了。在调试文件$posTangivelGerardReqAud.tsInvocacao变为"Tuesday,January 92018 12:00:00 AM"。如何强制webservice字段的格式为"yyyy-MM-dd"。
谢谢!
尝试
$dataTesteSeg = Get-Date $dataTeste -UFormat '%Y-%m-%d'
有关详细信息,请参见Get-Help Get-Date -Full
。
试试这个
get-date $posTangivelGerarReqAud.tsInvocacao -Format "yyyy-MM-dd"
当您在下面运行时,您正在为DateTime对象分配日期。
$posTangivelGerarReqAud.tsInvocacao = $dataTesteSeg
当您运行下面的行时,它以默认的DateTime格式输出。
$posTangivelGerarReqAud.tsInvocacao
Get-date
[datetime]::now
您可以将DateTime对象转换为所需的格式。
get-date $posTangivelGerarReqAud.tsInvocacao -Format "yyyy-MM-dd"
get-date -Format "yyyy-MM-dd"
我希望下面的代码能启动你的项目。
$dataTeste = '09-JAN-18'
$dataTeste = [datetime]::ParseExact($dataTeste, "dd-MMM-yy", $null)
$dataTesteSeg = $dataTeste.ToString("yyyy-MM-dd")
$posTangivelGerarReqAud.idSistemaOrigem = "PowerShell"
$posTangivelGerarReqAud.idUtilizador = "user186"
$posTangivelGerarReqAud.tsInvocacao = $dataTesteSeg
$posTangivelGerarReqGen.idDocumento = "DRU_0012"
$posTangivelGerarReqGen.tipoEvento = "E"
$myObject = [PSCustomObject]@{
idSistemaOrigem = $($posTangivelGerarReqAud.idSistemaOrigem)
idUtilizador = $($posTangivelGerarReqAud.idUtilizador)
tsInvocacao = $(get-date $posTangivelGerarReqAud.tsInvocacao -Format "yyyy-MM-dd")
idDocumento = $($posTangivelGerarReqGen.idDocumento)
tipoEvento = $($posTangivelGerarReqGen.tipoEvento)
}
$myObject | Out-File -FilePath C:temptestefile.txt -Append