首页 > 解决方案 > PowerShell - 日期时间格式更改

问题描述

使用 Out-File 和 Write-Host 时格式化日期时遇到问题,但使用 $StartDate1 时格式正确。

$StartDate1 = ([datetime]::today.AddDays(-1).addhours(00))
$ExchangeOnlineResults = {"Email count for: " + $StartDate1}
& $ExchangeOnlineResults | Out-File  .\test.txt

在 PowerShell 中返回时格式正确:

$StartDate1
09 March 2021 00:00:00

但是 Write-Host & Out-File 显示:

Write-Host $StartDate1
09/03/2021 00:00:00

我确信这是我正在监督的基本内容。

标签: powershell

解决方案


您在 PowerShell 中返回的是对象的表示。当您写入主机或将其保存在某处时,您需要指定所有数据的格式。您可以使用 . 检查对象并查看所有各种数据$startDate1 | Get-Member

Microsoft 在这里很好地概述了格式类型:

https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-date-and-time-format-strings

https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings

获取和操作日期的 PowerShell 方法如下:

(Get-Date).AddDays(-1) | Get-Date -Format 'dd MMMM yyyy HH:mm:ss' 

推荐阅读