Get-Date

Obtiene la fecha y hora actuales.

Syntax

Get-Date
   [[-Date] <DateTime>]
   [-Year <Int32>]
   [-Month <Int32>]
   [-Day <Int32>]
   [-Hour <Int32>]
   [-Minute <Int32>]
   [-Second <Int32>]
   [-Millisecond <Int32>]
   [-DisplayHint <DisplayHintType>]
   [-Format <String>]
   [-AsUTC]
   [<CommonParameters>]
Get-Date
   [[-Date] <DateTime>]
   [-Year <Int32>]
   [-Month <Int32>]
   [-Day <Int32>]
   [-Hour <Int32>]
   [-Minute <Int32>]
   [-Second <Int32>]
   [-Millisecond <Int32>]
   [-DisplayHint <DisplayHintType>]
   -UFormat <String>
   [<CommonParameters>]
Get-Date
   -UnixTimeSeconds <Int64>
   [-Year <Int32>]
   [-Month <Int32>]
   [-Day <Int32>]
   [-Hour <Int32>]
   [-Minute <Int32>]
   [-Second <Int32>]
   [-Millisecond <Int32>]
   [-DisplayHint <DisplayHintType>]
   [-Format <String>]
   [-AsUTC]
   [<CommonParameters>]
Get-Date
   -UnixTimeSeconds <Int64>
   [-Year <Int32>]
   [-Month <Int32>]
   [-Day <Int32>]
   [-Hour <Int32>]
   [-Minute <Int32>]
   [-Second <Int32>]
   [-Millisecond <Int32>]
   [-DisplayHint <DisplayHintType>]
   -UFormat <String>
   [<CommonParameters>]

Description

El Get-Date cmdlet obtiene un objeto DateTime que representa la fecha actual o una fecha especificada. Get-Date puede dar formato a la fecha y hora en varios formatos .NET y UNIX. Puede usar Get-Date para generar una cadena de caracteres de fecha u hora y, a continuación, enviar la cadena a otros cmdlets o programas.

Get-Date usa la configuración de referencia cultural actual del sistema operativo para determinar cómo se da formato a la salida. Para ver la configuración del equipo, use (Get-Culture).DateTimeFormat.

Ejemplos

Ejemplo 1: Obtener la fecha y hora actuales

En este ejemplo, Get-Date muestra la fecha y hora actuales del sistema. La salida está en los formatos long-date y long-time.

Get-Date

Tuesday, June 25, 2019 14:53:32

Ejemplo 2: Obtener elementos de la fecha y hora actuales

En este ejemplo se muestra cómo usar Get-Date para obtener el elemento date o time. El parámetro usa los argumentos Date, Time o DateTime.

Get-Date -DisplayHint Date

Tuesday, June 25, 2019

Get-Date usa el parámetro DisplayHint con el argumento Date para obtener solo la fecha.

Ejemplo 3: Obtención de la fecha y hora con un especificador de formato .NET

En este ejemplo, se usa un especificador de formato .NET para personalizar el formato de la salida. La salida es un objeto String .

Get-Date -Format "dddd MM/dd/yyyy HH:mm K"

Tuesday 06/25/2019 16:17 -07:00

Get-Date usa el parámetro Format para especificar varios especificadores de formato.

Los especificadores de formato .NET usados en este ejemplo se definen de la siguiente manera:

Especificador Definición
dddd Día de la semana: nombre completo
MM Número de mes.
dd Día del mes : 2 dígitos
yyyy Año en formato de 4 dígitos
HH:mm Hora en formato de 24 horas: sin segundos
K Desplazamiento de zona horaria de coordenadas horarias universales (UTC)

Para obtener más información sobre los especificadores de formato de .NET, vea Cadenas de formato de fecha y hora personalizadas.

Ejemplo 4: Obtener la fecha y hora con un especificador UFormat

En este ejemplo, se usan varios especificadores de formato UFormat para personalizar el formato de la salida. La salida es un objeto String .

Get-Date -UFormat "%A %m/%d/%Y %R %Z"

Tuesday 06/25/2019 16:19 -07

Get-Date usa el parámetro UFormat para especificar varios especificadores de formato.

Los especificadores de formato UFormat usados en este ejemplo se definen de la siguiente manera:

Especificador Definición
%A Día de la semana: nombre completo
%m Número de mes.
%d Día del mes : 2 dígitos
%Y Año en formato de 4 dígitos
%R Hora en formato de 24 horas: sin segundos
%Z Desplazamiento de zona horaria de coordenadas horarias universales (UTC)

Para obtener una lista de especificadores de formato UFormat válidos, vea la sección Notas.

Ejemplo 5: Obtener el día de una fecha del año

En este ejemplo, se usa una propiedad para obtener el día numérico del año.

El calendario gregoriano tiene 365 días, excepto los años bisiestos que tienen 366 días. Por ejemplo, el 31 de diciembre de 2020 es el día 366.

(Get-Date -Year 2020 -Month 12 -Day 31).DayOfYear

366

Get-Date usa tres parámetros para especificar la fecha: Year, Month y Day. El comando se ajusta con paréntesis para que la propiedad DayofYear evalúe el resultado.

Ejemplo 6: Comprobación de si se ajusta una fecha para el horario de verano

En este ejemplo se usa un método booleano para comprobar si una fecha se ajusta mediante el horario de verano.

$DST = Get-Date
$DST.IsDaylightSavingTime()

True

Una variable almacena $DST el resultado de Get-Date. $DST usa el método IsDaylightSavingTime para probar si la fecha se ajusta para el horario de verano.

Ejemplo 7: Convertir la hora actual a hora UTC

En este ejemplo, la hora actual se convierte a hora UTC. El desplazamiento UTC de la configuración regional del sistema se usa para convertir la hora. Una tabla de la sección Notas enumera los especificadores de formato UFormat válidos.

Get-Date -UFormat "%A %B/%d/%Y %T %Z"
$Time = Get-Date
$Time.ToUniversalTime()

Wednesday June/26/2019 10:45:26 -07

Wednesday, June 26, 2019 17:45:26

Get-Date usa el parámetro UFormat con especificadores de formato para mostrar la fecha y hora actuales del sistema. El especificador de formato %Z representa el desplazamiento UTC de -07.

La $Time variable almacena la fecha y hora actuales del sistema. $Time usa el ToUniversalTime() método para convertir la hora en función del desplazamiento UTC del equipo.

Ejemplo 8: Crear una marca de tiempo

En este ejemplo, un especificador de formato crea un objeto String de marca de tiempo para un nombre de directorio. La marca de tiempo incluye la fecha, la hora y el desplazamiento UTC.

$timestamp = Get-Date -Format o | ForEach-Object { $_ -replace ":", "." }
New-Item -Path C:\Test\$timestamp -Type Directory

Directory: C:\Test

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----         6/27/2019    07:59                2019-06-27T07.59.24.4603750-07.00

La $timestamp variable almacena los resultados de un Get-Date comando. Get-Dateusa el parámetro Format con el especificador de formato en minúsculas o para crear un objeto String de marca de tiempo. El objeto se envía por la canalización a ForEach-Object. Un ScriptBlock contiene la $_ variable que representa el objeto de canalización actual. La cadena de marca de tiempo está delimitada por dos puntos que se reemplazan por puntos.

New-Item usa el parámetro Path para especificar la ubicación de un nuevo directorio. La ruta de acceso incluye la $timestamp variable como nombre del directorio. El parámetro Type especifica que se crea un directorio.

Ejemplo 9: Convertir una marca de tiempo de Unix

En este ejemplo se convierte una hora de UNIX (representada por el número de segundos desde 1970-01-01 0:00:00) en DateTime.

Get-Date -UnixTimeSeconds 1577836800

Wednesday, January 01, 2020 12:00:00 AM

Ejemplo 10: Devolver un valor de fecha interpretado como UTC

En este ejemplo se muestra cómo interpretar un valor de fecha como su equivalente UTC. En el ejemplo, esta máquina se establece en Hora estándar del Pacífico. De forma predeterminada, Get-Date devuelve valores para esa zona horaria. Use el parámetro AsUTC para convertir el valor a la hora utc equivalente.

PS> Get-TimeZone

Id                         : Pacific Standard Time
DisplayName                : (UTC-08:00) Pacific Time (US & Canada)
StandardName               : Pacific Standard Time
DaylightName               : Pacific Daylight Time
BaseUtcOffset              : -08:00:00
SupportsDaylightSavingTime : True

PS> (Get-Date -Date "2020-01-01T00:00:00").Kind
Unspecified

PS> Get-Date -Date "2020-01-01T00:00:00"

Wednesday, January 1, 2020 12:00:00 AM

PS> (Get-Date -Date "2020-01-01T00:00:00" -AsUTC).Kind
Utc

PS> Get-Date -Date "2020-01-01T00:00:00" -AsUTC

Wednesday, January 1, 2020 8:00:00 AM

Ejemplo 11: Mostrar referencia cultural invariable

ToString() convierte un objeto DateTime en string mediante la configuración de referencia cultural actual. Sin embargo, la interpretación de expresiones de PowerShell siempre usa la configuración de referencia cultural invariable.

Por ejemplo, en un sistema con la en-US referencia cultural en vigor, el ToString() método da formato a la fecha mediante la configuración de referencia en-US cultural.

# Get date using current culture en-US
(Get-Date 2024-03-19).ToString()

3/19/2024 12:00:00 AM

# Get date using invariant culture
"$(Get-Date 2024-03-19)"

03/19/2024 00:00:00

Parámetros

-AsUTC

Convierte el valor de fecha en la hora equivalente en UTC.

Este parámetro se introdujo en PowerShell 7.1.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Date

Especifica una fecha y hora. La hora es opcional y, si no se especifica, devuelve 00:00:00. Escriba la fecha y hora en un formato estándar para la configuración regional seleccionada actualmente. Puede cambiar la configuración regional actual mediante el Set-Culture cmdlet .

Por ejemplo, en inglés de EE. UU.:

Get-Date -Date "6/25/2019 12:30:22" devuelve el martes 25 de junio de 2019 12:30:22

Type:DateTime
Aliases:LastWriteTime
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Day

Especifica el día del mes que se muestra. Escriba un valor entre 1 y 31.

Si el valor especificado es mayor que el número de días de un mes, PowerShell agrega el número de días al mes. Por ejemplo, Get-Date -Month 4 -Day 31 muestra el 1 de mayo, no el 31 de abril.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DisplayHint

Determina qué elementos de fecha y hora se muestran.

Los valores aceptados son los siguientes:

  • Fecha: muestra solo la fecha.
  • Hora: muestra solo la hora.
  • DateTime: muestra la fecha y hora
Type:DisplayHintType
Accepted values:Date, Time, DateTime
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Format

Muestra la fecha y hora en el formato de Microsoft .NET Framework indicado por el especificador de formato. El parámetro Format genera un objeto String .

Para obtener una lista de especificadores de formato de .NET disponibles, consulte Cadenas de formato de fecha y hora personalizadas.

Cuando se usa el parámetro Format , Get-Date solo obtiene las propiedades del objeto DateTime necesarias para mostrar la fecha. Como resultado, es posible que algunas de las propiedades y métodos de los objetos DateTime no estén disponibles.

A partir de PowerShell 5.0, puede usar los siguientes formatos adicionales como valores para el parámetro Format .

  • FileDate. Representación de archivo o ruta de acceso de la fecha actual en la hora local. El formato es yyyyMMdd (distingue mayúsculas de minúsculas, utilizando un año de 4 dígitos, un mes de 2 dígitos y un día de 2 dígitos). Por ejemplo: 20190627.

  • FileDateUniversal. Una representación de archivo o ruta de acceso de la fecha actual en la hora universal (UTC). El formato es yyyyMMddZ (distingue mayúsculas de minúsculas, utilizando un año de 4 dígitos, un mes de 2 dígitos, un día de 2 dígitos y la letra Z como indicador UTC). Por ejemplo: 20190627Z.

  • FileDateTime. Una representación de archivo o ruta de acceso de la fecha y hora actuales en la hora local, en formato de 24 horas. El formato es yyyyMMddTHHmmssffff (distingue mayúsculas de minúsculas, utilizando un año de 4 dígitos, un mes de 2 dígitos, un día de 2 dígitos, la letra T como separador de hora, hora de 2 dígitos, minuto de 2 dígitos, segundo de 2 dígitos y milisegundos de 4 dígitos). Por ejemplo: 20190627T0840107271.

  • FileDateTimeUniversal. Representación de archivo o ruta de acceso de la fecha y hora actuales en hora universal (UTC), en formato de 24 horas. El formato es yyyyMMddTHHmmssffffZ (distingue mayúsculas de minúsculas, utilizando un año de 4 dígitos, un mes de 2 dígitos, un día de 2 dígitos, la letra T como separador de hora, hora de 2 dígitos, minuto de 2 dígitos, segundo de 2 dígitos, milisegundos de 4 dígitos y la letra Z como indicador UTC). Por ejemplo: 20190627T1540500718Z.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Hour

Especifica la hora que se muestra. Escriba un valor de 0 a 23.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Millisecond

Especifica los milisegundos en la fecha. Escriba un valor de 0 a 999.

Este parámetro se introdujo en PowerShell 3.0.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Minute

Especifica el minuto que se muestra. Escriba un valor de 0 a 59.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Month

Especifica el mes que se muestra. Escriba un valor de 1 a 12.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Second

Especifica el segundo que se muestra. Escriba un valor de 0 a 59.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UFormat

Muestra la fecha y hora en formato UNIX. El parámetro UFormat genera un objeto de cadena.

Los especificadores UFormat están precedidos por un signo de porcentaje (%), por ejemplo, %m, %dy %Y. La sección Notes contiene una tabla de especificadores UFormat válidos.

Cuando se usa el parámetro UFormat , Get-Date solo obtiene las propiedades del objeto DateTime necesarias para mostrar la fecha. Como resultado, es posible que algunas de las propiedades y métodos de los objetos DateTime no estén disponibles.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UnixTimeSeconds

Fecha y hora representadas en segundos desde el 1 de enero de 1970, 0:00:00.

Este parámetro se introdujo en PowerShell 7.1.

Type:Int64
Aliases:UnixTime
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Year

Especifica el año que se muestra. Escriba un valor de 1 a 9999.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Entradas

DateTime

Puede canalizar un objeto DateTime a este cmdlet.

Salidas

DateTime

De forma predeterminada, este cmdlet devuelve un objeto DateTime .

Cuando se envía un objeto DateTime a una canalización a un cmdlet como Add-Content que espera la entrada de cadena, PowerShell convierte el objeto en un objeto String .

ToString() Convierte un objeto DateTime en una cadena mediante la configuración de referencia cultural actual. Sin embargo, la interpretación de expresiones de PowerShell siempre usa la configuración de referencia cultural invariable. Para ver cómo la referencia cultural invariable es diferente, consulte el ejemplo 11.

Para mostrar las propiedades y los métodos de un objeto, envíe el objeto a la canalización a Get-Member. Por ejemplo, Get-Date | Get-Member.

String

Cuando se usan los parámetros Format o UFormat , este cmdlet devuelve objetos String .

Notas

Los formatos predeterminados para la salida de los objetos DateTime son formatos de fecha larga y de tiempo largo para la configuración regional seleccionada actualmente.

Los especificadores UFormat válidos se muestran en la tabla siguiente:

Importante

Los especificadores UFormat se cambian o agregan en versiones más recientes de PowerShell. Por ejemplo, %F se agregó en PowerShell 6.2, por lo que no está disponible en Windows PowerShell 5.1 o versiones anteriores. Tenga esto en cuenta al usar especificadores UFormat en scripts diseñados para ejecutarse en varias versiones de PowerShell.

Especificador de formato Significado Ejemplo
%A Día de la semana: nombre completo Lunes
%a Día de la semana: nombre abreviado Lu.
%B Nombre del mes: completo January
%b Nombre del mes: abreviado Jan
%C Siglo 20 para 2019
%c Fecha y hora: abreviada Thu Jun 27 08:44:18 2019
%D Fecha en formato mm/dd/aaaa 06/27/19
%d Día del mes : 2 dígitos 05
%e Día del mes: precedido por un espacio si solo hay un solo dígito <espacio>5
%F Fecha en formato AAAA-mm-dd, igual a %Y-%m-%d (formato de fecha ISO 8601) 2019-06-27
%G Año de fecha de la semana ISO (año que contiene el jueves de la semana)
%g Igual que 'G' - 2 dígitos
%H Hora en formato de 24 horas 17
%h Igual que 'b'
%I Hora en formato de 12 horas 05
%j Día del año 1-366
%k Igual que 'H'
%l Igual que 'I' (mayúscula i) 05
%M Minutos 35
%m Número de mes. 06
%n carácter de nueva línea
%p a. m. o p. m.
%R Hora en formato de 24 horas :sin segundos 17:45
%r Hora en formato de 12 horas 09:15:36 AM
%S Segundos 05
%s Segundos transcurridos desde el 1 de enero de 1970 00:00:00 (UTC) 1150451174
%t Carácter de tabulación horizontal
%T Hora en formato de 24 horas 17:45:52
%U Igual que 'W'
%u Día numérico de la semana (1-7) (cambiado en PowerShell 7.2) Lunes = 1, domingo = 7
%V Semana del año 01-53
%w Día numérico de la semana (0-6) Domingo = 0, sábado = 6
%W Semana del año 00-52
%X Igual que 'T'
%x Fecha en formato estándar para la configuración regional 27/06/19 para inglés-EE. UU.
%Y Año en formato de 4 dígitos 2019
%y Año en formato de 2 dígitos 19
%Z Desplazamiento de zona horaria de coordenadas horarias universales (UTC) -07

Nota:

El comportamiento de -UFormat %s se cambió para corregir problemas con el comportamiento en Windows PowerShell.

  • El valor devuelto se basa en la hora UTC.
  • El valor es un número entero de segundos (sin parte fraccionaria).