[英]Odd Result Date/Time Format - Powershell
我將一個表示日期即20180625的字符串傳遞給我的Powershell腳本。
然后我接受字符串參數,稱為$ currentDate並將其格式化如下:
$date = [datetime]::ParseExact($currentDate,"yyyyMMdd",$null)
但是,當我寫出$ date變量時,它顯示為6/29/2018 12:00:00 AM。
我這樣做是因為我需要為我的劇本獲取一年中的一天:
$dayofyear = ($date).dayofyear
哪個有效。 我只是希望$ date是yyyyMMdd格式。 只是好奇為什么會這樣。
ParseExact的format參數告訴解析器你給它的日期是什么格式。你得到的對象是DateTime對象而不是字符串。 要以您想要的格式獲取字符串,請使用.ToString()方法,然后給出您希望字符串所在的格式。
舉個例子:
$currentDate = '20180629'
$date = [datetime]::ParseExact($currentDate,"yyyyMMdd",$null)
$dayOfYear = $date.DayOfYear
$date.ToString('yyyyMMdd')
$date
是[datetime]
類型的對象,它包含以ticks
表示的精確時間度量。 例如,1天的時間跨度將是864000000000個刻度。 因此,在較小的字段中不可能具有$null
值(864個滴答僅為幾毫秒)。 $date
使用默認格式打印到控制台,可以更改。 但是,由於每個字段下至-Milliseconds
都填充為0,當該默認格式包含-hours
等字段時,它們將顯示為最小值(在本例中為完全上午12點)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.