Как отформатировать DateTime в PowerShell?



Я могу отформатировать Get-Date commandlet нет проблем, как это:



$date = Get-Date -format "yyyyMMdd"


но как только я получил дата в переменной, как ее отформатировать? Заявление ниже



$dateStr = $date -format "yyyMMdd"


возвращает эту ошибку:




"необходимо указать значение выражения
на правой стороне-Ф'
оператор"


661   8  

8 ответов:

то же, что и в. NET.

$DateStr = $Date.ToString("yyyyMMdd")

или

$DateStr = '{0:yyyyMMdd}' -f $Date

на этот вопрос есть ответ, но есть еще некоторая информация отсутствует:

переменная против командлета

у вас есть значения в $Date переменной и -f оператор работает в таком виде: 'format string' -f values. Если вы позвоните Get-Date -format "yyyyMMdd" вы называете a

одна вещь, вы могли бы сделать это:

$date.ToString("yyyyMMdd")

очень удобное - но, вероятно, не слишком эффективное-решение заключается в использовании функции-члена 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] хранится в переменной:

  1. передайте переменную в командлет Get-Date: Get-Date -Format "HH:mm" $date

  2. использовать toString() метод: $date.ToString("HH:mm")

  3. использовать композитный форматирование: "{0:HH:mm}" -f $date

Comments

    Ничего не найдено.