Get-Date
Obtiene la fecha y hora actuales.
Sintaxis
Get-Date
[[-Date] <DateTime>]
[-Year <Int32>]
[-Month <Int32>]
[-Day <Int32>]
[-Hour <Int32>]
[-Minute <Int32>]
[-Second <Int32>]
[-Millisecond <Int32>]
[-DisplayHint <DisplayHintType>]
[-Format <String>]
[<CommonParameters>]
Get-Date
[[-Date] <DateTime>]
[-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-Date
usa 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: 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
-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
Tipo: | DateTime |
Alias: | LastWriteTime |
Posición: | 0 |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | 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.
Tipo: | Int32 |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | 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
Tipo: | DisplayHintType |
Valores aceptados: | Date, Time, DateTime |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | 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 letraZ
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 letraT
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 letraT
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 letraZ
como indicador UTC). Por ejemplo: 20190627T1540500718Z.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Hour
Especifica la hora que se muestra. Escriba un valor de 0 a 23.
Tipo: | Int32 |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Millisecond
Especifica los milisegundos en la fecha. Escriba un valor de 0 a 999.
Este parámetro se introdujo en PowerShell 3.0.
Tipo: | Int32 |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Minute
Especifica el minuto que se muestra. Escriba un valor de 0 a 59.
Tipo: | Int32 |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Month
Especifica el mes que se muestra. Escriba un valor de 1 a 12.
Tipo: | Int32 |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Second
Especifica el segundo que se muestra. Escriba un valor de 0 a 59.
Tipo: | Int32 |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | 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
, %d
y %Y
. La sección Notes contiene una tabla de especificadores UFormat válidos.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Year
Especifica el año que se muestra. Escriba un valor de 1 a 9999.
Tipo: | Int32 |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
Entradas
Puede canalizar un objeto DateTime a este cmdlet.
Salidas
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 9.
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
.
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 |
%G |
Igual que 'Y' | |
%g |
Igual que 'y' | |
%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 (no incluye líder 0 : corregido en PowerShell 6 o posteriores) |
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 |
Los segundos transcurridos desde el 1 de enero de 1970 a las 00:00:00 (convertidos a la hora local) | 1150451174.95705 |
%t |
Carácter de tabulación horizontal | |
%T |
Hora en formato de 24 horas | 17:45:52 |
%U |
Igual que 'W' | |
%u |
Día de la semana: número | Domingo = 0 |
%V |
Semana del año | 01-53 |
%w |
Igual que 'u' | |
%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 Windows PowerShell con Get-Date -UFormat %s
es incorrecto en dos aspectos:
- El valor devuelto se basa en la hora local en lugar de la hora UTC.
- La representación de cadena del valor de segundos tiene una parte fraccionaria. La salida distingue la referencia cultural con respecto a la marca decimal.
Estos comportamientos se han corregido en PowerShell 6 y versiones posteriores.