Compartir vía


Get-Date

Obtiene la fecha y hora actuales.

Sintaxis

DateAndFormat (Es el valor predeterminado).

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

DateAndUFormat

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

UnixTimeSecondsAndFormat

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

UnixTimeSecondsAndUFormat

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

Description

El cmdlet Get-Date obtiene un objeto DateTime que representa la fecha actual o una fecha que especifique. 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, Timeo DateTime.

Get-Date -DisplayHint Date
Tuesday, June 25, 2019

Get-Date usa el parámetro DisplayHint con el argumento date 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 de 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 .NET, vea Cadenas de formato de fecha y hora personalizados.

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, consulte la sección Notas de.

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, Monthy Day. El comando se ajusta con paréntesis para que el resultado se evalúe mediante la propiedad DayOfYear.

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, $DST almacena 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. En una tabla de la sección Notas de se enumeran 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 variable $Time almacena la fecha y hora actuales del sistema. $Time usa el método ToUniversalTime() 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 una marca de tiempo objeto String 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 variable $timestamp almacena los resultados de un comando Get-Date. Get-Date usa el parámetro Format con el especificador de formato de o en minúsculas para crear una marca de tiempo objeto String. 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 variable $timestamp 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) a 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 equivalente UTC.

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

El ToString() convierte un objeto dateTime un 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 referencia cultural en-US en vigor, el método ToString() da formato a la fecha mediante la configuración de referencia cultural de en-US.

# 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.

Propiedades del parámetro

Tipo:SwitchParameter
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes: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 cmdlet Set-Culture.

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

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

Propiedades del parámetro

Tipo:DateTime
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False
Alias:LastWriteTime

Conjuntos de parámetros

DateAndFormat
Posición:0
Mandatory:False
Valor de la canalización:True
Valor de la canalización por nombre de propiedad:True
Valor de los argumentos restantes:False
DateAndUFormat
Posición:0
Mandatory:False
Valor de la canalización:True
Valor de la canalización por nombre de propiedad:True
Valor de los argumentos restantes:False

-Day

Especifica el día del mes que se muestra. Escriba un valor de 1 a 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 de mayo, no 31 de abril.

Propiedades del parámetro

Tipo:Int32
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-DisplayHint

Determina qué elementos de la 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.

Propiedades del parámetro

Tipo:DisplayHintType
Valor predeterminado:None
Valores aceptados:Date, Time, DateTime
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes: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 .NET disponibles, consulte Cadenas de formato de fecha y hora personalizados.

Cuando se usa el parámetro format de, Get-Date solo obtiene las propiedades de DateTime objeto necesaria para mostrar la fecha. Como resultado, es posible que algunas de las propiedades y métodos de 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 de.

  • Fecha de archivo. 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, usando 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, usando 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, usando 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 tiempo, 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, usando 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 tiempo, 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.

Propiedades del parámetro

Tipo:String
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

DateAndFormat
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False
UnixTimeSecondsAndFormat
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Hour

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

Propiedades del parámetro

Tipo:Int32
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Millisecond

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

Este parámetro se introdujo en PowerShell 3.0.

Propiedades del parámetro

Tipo:Int32
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Minute

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

Propiedades del parámetro

Tipo:Int32
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Month

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

Propiedades del parámetro

Tipo:Int32
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Second

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

Propiedades del parámetro

Tipo:Int32
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-UFormat

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

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

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

Propiedades del parámetro

Tipo:String
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

DateAndUFormat
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False
UnixTimeSecondsAndUFormat
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes: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.

Propiedades del parámetro

Tipo:Int64
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False
Alias:UnixTime

Conjuntos de parámetros

UnixTimeSecondsAndFormat
Posición:Named
Mandatory:True
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False
UnixTimeSecondsAndUFormat
Posición:Named
Mandatory:True
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Year

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

Propiedades del parámetro

Tipo:Int32
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

CommonParameters

Este cmdlet admite los parámetros comunes: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction y -WarningVariable. Para obtener más información, vea about_CommonParameters.

Entradas

DateTime

Puede canalizar un objeto DateTime a este cmdlet.

Salidas

DateTime

De forma predeterminada, este cmdlet devuelve un objeto DateTime.

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

El ToString() convierte un objeto DateTime en un string de 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, vea ejemplo 11.

Para mostrar las propiedades y los métodos de un objeto, envíe el objeto 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 objetos DateTime son formatos de fecha larga y de tiempo largo para la configuración regional seleccionada actualmente.

En la tabla siguiente se muestran los especificadores UFormat válidos :

Importante

especificadores de 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 de 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 Lun
%B Nombre del mes: completo Enero
%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 AM o PM
%R Hora en formato de 24 horas -no segundos 17:45
%r Hora en formato de 12 horas 09:15:36
%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 1-53
%X Igual que 'T'
%x Fecha en formato estándar para la configuración regional 27/06/19 para English-US
%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).