yyyymmddhhmmss verb noun convert powershell formatting

verb - Formato de PowerShell Get-Date dentro de la cadena



powershell get-date format yyyymmddhhmmss (3)

En lugar de usar la interpolación de cadenas , puede simplemente formatear DateTime usando el ToString("u") y concatenar con el resto de la cadena:

$startTime = Get-Date Write-Host "The script was started " + $startTime.ToString("u")

No puedo entender cómo funciona el formato de una variable de fecha y hora dentro de una cadena en PowerShell.

$startTime = Get-Date Write-Host "The script was started $startTime" ...Do stuff... $endTime = Get-Date Write-Host "Done at $endTime. Time for the full run was: $( New-TimeSpan $startTime $endTime)."

Me da el formato de fecha de Estados Unidos mientras quiero ISO 8601 .

Podría usar

$(Get-Date -Format u)

pero quiero usar $ endTime para hacer el cálculo del intervalo de tiempo correcto.

He intentado todas las permutaciones de $, (,), endTime, -format, u, .ToString (...) y .ToShortDate (), pero la que funciona.


Puedes usar el operador -f

$a = "{0:D}" -f (get-date) $a = "{0:dddd}" -f (get-date)

Spécificator Type Example (with [datetime]::now) d Short date 26/09/2002 D Long date jeudi 26 septembre 2002 t Short Hour 16:49 T Long Hour 16:49:31 f Date and hour jeudi 26 septembre 2002 16:50 F Long Date and hour jeudi 26 septembre 2002 16:50:51 g Default Date 26/09/2002 16:52 G Long default Date and hour 26/09/2009 16:52:12 M Month Symbol 26 septembre r Date string RFC1123 Sat, 26 Sep 2009 16:54:50 GMT s Sortable string date 2009-09-26T16:55:58 u Sortable string date universal local hour 2009-09-26 16:56:49Z U Sortable string date universal GMT hour samedi 26 septembre 2009 14:57:22 (oups) Y Year symbol septembre 2002

Spécificator Type Example Output Example dd Jour {0:dd} 10 ddd Name of the day {0:ddd} Jeu. dddd Complet name of the day {0:dddd} Jeudi f, ff, … Fractions of seconds {0:fff} 932 gg, … position {0:gg} ap. J.-C. hh Hour two digits {0:hh} 10 HH Hour two digits (24 hours) {0:HH} 22 mm Minuts 00-59 {0:mm} 38 MM Month 01-12 {0:MM} 12 MMM Month shortcut {0:MMM} Sep. MMMM complet name of the month {0:MMMM} Septembre ss Seconds 00-59 {0:ss} 46 tt AM or PM {0:tt} ““ yy Years, 2 digits {0:yy} 02 yyyy Years {0:yyyy} 2002 zz Time zone, 2 digits {0:zz} +02 zzz Complete Time zone {0:zzz} +02:00 : Separator {0:hh:mm:ss} 10:43:20 / Separator {0:dd/MM/yyyy} 10/12/2002


"This is my string with date in specified format $($theDate.ToString(''u''))"

o

"This is my string with date in specified format $(Get-Date -format ''u'')"

La sub-expresión ( $(...) ) puede incluir llamadas de expresiones arbitrarias.

MSDN Documenta cadenas de formato DateTime estándar y personalizadas .