Как отформатировать DateTime в PowerShell?
Я могу отформатировать Get-Date commandlet нет проблем, как это:
$date = Get-Date -format "yyyyMMdd"
но как только я получил дата в переменной, как ее отформатировать? Заявление ниже
$dateStr = $date -format "yyyMMdd"
возвращает эту ошибку:
"необходимо указать значение выражения
на правой стороне-Ф'
оператор"
8 ответов:
на этот вопрос есть ответ, но есть еще некоторая информация отсутствует:
переменная против командлета
у вас есть значения в
$Dateпеременной и-fоператор работает в таком виде:'format string' -f values. Если вы позвонитеGet-Date -format "yyyyMMdd"вы называете a
очень удобное - но, вероятно, не слишком эффективное-решение заключается в использовании функции-члена
GetDateTimeFormats(),$d = Get-Date $d.GetDateTimeFormats()это выводит большой строковый массив стилей форматирования для значения даты. Затем вы можете выбрать один из элементов массива с помощью
[]-оператор, например,PS C:\> $d.GetDateTimeFormats()[12] Dienstag, 29. November 2016 19.14
простой и приятный способ-это:
$time = (Get-Date).ToString("yyyy:MM:dd")или просто
(Get-Date).ToString("yyyy:MM:dd")
сделайте это, если вам абсолютно необходимо использовать :
$dateStr = (Get-Date $date -Format "yyyMMdd")$dateStr = $date.toString('yyyMMdd')вероятно, более эффективно.. :)
Если вы попали сюда, чтобы использовать это в DOS:
powershell -Command (Get-Date).ToString('yyyy-MM-dd')
очень информативная ответ от @stej, но вот короткий ответ: Среди другие функции, вы 3 простых варианта для форматирования [System.DateTime] хранится в переменной:
передайте переменную в командлет Get-Date:
Get-Date -Format "HH:mm" $dateиспользовать toString() метод:
$date.ToString("HH:mm")использовать композитный форматирование:
"{0:HH:mm}" -f $date
Comments