now - ¿Cómo formatear un DateTime en PowerShell?
powershell get utc date (7)
Puedo formatear el comando Get-Date
sin problemas como este:
$date = Get-Date -format "yyyyMMdd"
pero una vez que tengo una fecha en una variable, ¿cómo la formateo? La declaración a continuación
$dateStr = $date -format "yyyMMdd"
devuelve este error:
"Debe proporcionar una expresión de valor en el lado derecho del operador ''-f''"
¿Qué tal si haces esto si necesitas usar la opción -Formato:
$dateStr = (Get-Date $date -Format "yyyMMdd")
sin embargo
$dateStr = $date.toString(''yyyMMdd'')
es probablemente más eficiente ... :)
La pregunta es respondida, pero falta algo más de información:
Variable vs. Cmdlet
Tiene un valor en la variable $Date
y el operador -f
funciona de esta forma: ''format string'' -f values
. Si llama a Get-Date -format "yyyyMMdd"
, llama a un cmdlet con algunos parámetros. El valor "yyyyMMdd" es el valor para el Format
parámetro (intente con la help Get-Date -param Format
).
-f
operador
Hay muchas cadenas de formato, mira al menos en part1 y part2 . Ella usa string.Format(''format string'', values'')
. Piénselo como ''format-string'' -f values
, porque el operador -f
funciona de manera muy similar a la string.Format
Método de string.Format
(aunque hay algunas diferencias (para obtener más información, consulte la pregunta en Desbordamiento de pila: ¿Cómo funciona exactamente el RHS de PowerShell? -f ¿trabajo del operador? ).
Lo mismo que harías en .NET.
$DateStr = $Date.ToString("yyyyMMdd")
o
$DateStr = ''{0:yyyyMMdd}'' -f $Date
Si llegaste aquí para usar esto en DOS:
powershell -Command (Get-Date).ToString(''yyyy-MM-dd'')
Una cosa que podrías hacer es:
$date.ToString("yyyyMMdd")
Una manera simple y agradable es:
$time = (Get-Date).ToString("yyyy:MM:dd")
o simplemente
(Get-Date).ToString("yyyy:MM:dd")
Una solución muy conveniente, aunque probablemente no demasiado eficiente, es usar la función miembro GetDateTimeFormats()
,
$d = Get-Date
$d.GetDateTimeFormats()
Esto produce una gran matriz de cadenas de estilos de formato para el valor de fecha. A continuación, puede elegir uno de los elementos de la matriz a través del operador []
, por ejemplo,
PS C:/> $d.GetDateTimeFormats()[12]
Dienstag, 29. November 2016 19.14