结果日期/时间格式奇数-Powershell

时间:2018-06-29 19:04:05

标签: powershell datetime-format

我正在将代表日期的字符串(即20180625)传递到我的Powershell脚本。

然后我使用字符串参数(称为$ currentDate)并将其格式化如下:

$date = [datetime]::ParseExact($currentDate,"yyyyMMdd",$null)

但是,当我写出$ date变量时,它显示为6/29/2018 12:00:00 AM。

我这样做是因为我需要获取脚本的一年中的某天:

$dayofyear = ($date).dayofyear

哪个工作。我只是希望$ date是yyyyMMdd格式。只是好奇为什么会这样。

2 个答案:

答案 0 :(得分:3)

ParseExact的format参数告诉解析器您输入日期的格式。返回的对象是DateTime对象,而不是字符串。要获取所需格式的字符串,请使用.ToString()方法,然后给出您希望该字符串使用的格式。

例如:

$currentDate = '20180629'
$date = [datetime]::ParseExact($currentDate,"yyyyMMdd",$null)
$dayOfYear = $date.DayOfYear
$date.ToString('yyyyMMdd')

答案 1 :(得分:0)

$date是类型[datetime]的对象,其中包含ticks中时间的精确度量。例如,1天的时间跨度为864000000000滴答。因此,不可能在较小的字段中使用$null值(864个滴答声只有几毫秒)。 $date使用默认格式打印到控制台,该格式可以更改。但是,由于向下-Milliseconds的每个字段都填充为0,因此当默认格式确实包含诸如-hours之类的字段时,它们将显示为最小值(在这种情况下,恰好是凌晨12点)。 / p>