Búsqueda de sitios web

¿Cómo convertir una cadena a una fecha en PowerShell?


Uno de los miembros de mi equipo buscó recientemente una solución para convertir una cadena en una fecha en PowerShell. Sugerí diferentes métodos. En este tutorial, te mostraré cómo convertir una cadena en una fecha en PowerShell con ejemplos.

Para convertir una cadena en una fecha en PowerShell, puede utilizar el acelerador de tipo [datetime] . Por ejemplo, si tiene una cadena de fecha como "19/08/2024", puede convertirla usando [datetime]::ParseExact("19/08/2024", " MM/dd/aaaa", $null). Este método garantiza que la cadena se interprete correctamente según el formato especificado.

Convertir cadena a fecha en PowerShell

Ahora, déjame mostrarte cómo convertir una cadena en una fecha en PowerShell usando diferentes métodos.

Método 1: usar Get-Date

El cmdlet Get-Date es útil en PowerShell y se puede utilizar para convertir una cadena en un objeto DateTime.

Aquí hay un ejemplo.

$dateString = "08/09/2025"
$date = Get-Date $dateString
Write-Output $date

En este ejemplo, la cadena “09/08/2025” se convierte en un objeto DateTime usando Get-Date.

Ejecuté el script de PowerShell anterior y puedes ver el resultado en la siguiente captura de pantalla:

Método 2: usar [fecha y hora]::Parse()

El método [datetime]::Parse() es otra forma de convertir una cadena en un objeto DateTime en PowerShell. Este método es particularmente útil cuando se trata de diferentes formatos de fecha.

Aquí hay un ejemplo.

$dateString = "19-Aug-2025"
$date = [datetime]::Parse($dateString)
Write-Output $date

Aquí, la cadena "09-Jun-2025" se analiza en un objeto DateTime.

Aquí está el resultado que puede ver en la siguiente captura de pantalla:

Consulte Convertir cadena a doble en PowerShell

Método 3: usar [fecha y hora]::ParseExact()

Ahora, déjame mostrarte otro método para convertir una cadena a una fecha en PowerShell usando [datetime]::ParseExact(). Este método requiere que especifique el formato exacto de la cadena de fecha.

Aquí hay un ejemplo.

$dateString = "2025-06-09"
$format = "yyyy-MM-dd"
$date = [datetime]::ParseExact($dateString, $format, $null)
Write-Output $date

En este ejemplo, la cadena "2025-06-09" se analiza utilizando el formato "aaaa-MM-dd".

Método 4: usar Get-Date con el parámetro -Format

El parámetro -Format de Get-Date se puede utilizar para especificar el formato deseado de la salida.

A continuación se muestra un ejemplo de cómo podemos usar el parámetro Get-Date con -Format para convertir una cadena a una fecha en PowerShell.

$dateString = "06/09/2025"
$date = Get-Date $dateString -Format "yyyy-MM-dd"
Write-Output $date

Esto convierte la cadena “09/06/2025” en un objeto DateTime y lo formatea como “aaaa-MM-dd”.

Aquí está el resultado en la captura de pantalla a continuación, puede ver:

Consulte Convertir cadena en Hashtable en PowerShell

Manejar diferentes formatos de fecha

En escenarios del mundo real, es posible que encuentre varios formatos de fecha. A continuación se muestran algunos ejemplos de cómo manejarlos:

Ejemplo 1: Convertir el formato de fecha de EE. UU. (MM/dd/aaaa)

A continuación se muestra un ejemplo de cómo convertir una fecha a un formato de fecha de EE. UU. en PowerShell.

$dateString = "06/09/2025"
$format = "MM/dd/yyyy"
$date = [datetime]::ParseExact($dateString, $format, $null)
Write-Output $date

Ejemplo 2: Convertir el formato de fecha europeo (dd/MM/aaaa)

A continuación se muestra un ejemplo de cómo convertir una cadena al formato de fecha europeo en PowerShell.

$dateString = "09/06/2025"
$format = "dd/MM/yyyy"
$date = [datetime]::ParseExact($dateString, $format, $null)
Write-Output $date

Leer Convertir cadena a JSON en PowerShell

Convierta una cadena a una fecha con zona horaria usando PowerShell

Ahora, déjame mostrarte cómo convertir una cadena a una fecha con zona horaria usando PowerShell. Existen diferentes métodos para hacer esto.

Usando el método ParseExact

Puede utilizar el método ParseExact para convertir una cadena a una fecha con zona horaria mediante PowerShell. Aquí hay un ejemplo:

$timeString = '2025-08-19 03:00:00 -0400'
$format = 'yyyy-MM-dd HH:mm:ss zzz'
$culture = [System.Globalization.CultureInfo]::InvariantCulture
$datetime = [datetime]::ParseExact($timeString, $format, $culture)

Manejar zonas horarias

Para manejar zonas horarias explícitamente, puede utilizar la clase TimeZoneInfo :

$timeString = '2025-08-19 03:00:00'
$timeZone = [System.TimeZoneInfo]::FindSystemTimeZoneById('Eastern Standard Time')
$datetime = [datetime]::Parse($timeString)
$datetimeWithTimeZone = [System.TimeZoneInfo]::ConvertTimeBySystemTimeZoneId($datetime, $timeZone.Id)

Lea ¿Cómo convertir una cadena Base64 en texto en PowerShell?

Convierta una cadena en fecha sin hora usando PowerShell

Ahora, déjame mostrarte cómo convertir una cadena a una fecha sin tiempo usando PowerShell.

Para convertir una cadena en una fecha sin el componente de hora en PowerShell, puede utilizar el método [datetime]::ParseExact . Este método le permite especificar el formato exacto de la cadena de fecha y analizarla en consecuencia. Una vez analizado, puede acceder a la propiedad .Date para obtener solo la parte de la fecha.

Ejemplo

Supongamos que tiene una cadena de fecha en el formato aaaa-MM-dd y desea convertirla en un objeto de fecha sin el componente de hora.

Aquí está el script completo de PowerShell.

# Define the date string
$dateString = '2025-08-19'

# Define the format of the date string
$format = 'yyyy-MM-dd'

# Parse the date string to a DateTime object
try {
    $dateTime = [datetime]::ParseExact($dateString, $format, [System.Globalization.CultureInfo]::InvariantCulture)
} catch {
    Write-Error "Failed to parse date string: $_"
    return
}

# Get only the date part
$dateOnly = $dateTime.Date

# Output the result
Write-Output $dateOnly

Explicación

  1. Defina la cadena de fecha: la variable $dateString contiene la fecha en formato de cadena.
  2. Definir el formato: la variable $format especifica el formato de la cadena de fecha.
  3. Método ParseExact: el método [datetime]::ParseExact se utiliza para convertir la cadena en un objeto DateTime . Toma la cadena de fecha, el formato y un objeto de información cultural.
  4. Extraer la fecha: se accede a la propiedad .Date del objeto DateTime para obtener solo la parte de la fecha, que elimina el componente de hora.

Este método garantiza que la conversión sea precisa y que el objeto DateTime resultante contenga solo la fecha sin ninguna información de hora.

Puede ver el resultado en la captura de pantalla a continuación después de ejecutar el script de PowerShell anterior.

Leer Convertir cadena a Int en PowerShell

PowerShell: convertir cadena a fecha aaaammddhhmmss

Para convertir una cadena en el formato yyyyMMddHHmmss en un objeto DateTime en PowerShell, puede utilizar el método [datetime]::ParseExact . Este método le permite especificar el formato exacto de la cadena de fecha y hora y analizarlo en consecuencia.

Ejemplo

Supongamos que tiene una cadena de fecha y hora en el formato aaaaMMddHHmmss y desea convertirla en un objeto DateTime . Aquí está el script completo de PowerShell.

# Define the date and time string
$dateString = '20240819083045'

# Define the format of the date and time string
$format = 'yyyyMMddHHmmss'

# Parse the date and time string to a DateTime object
$dateTime = [datetime]::ParseExact($dateString, $format, [System.Globalization.CultureInfo]::InvariantCulture)

# Output the result
$dateTime

Explicación

  1. Defina la cadena de fecha y hora: la variable $dateString contiene la fecha y la hora en formato de cadena.
  2. Defina el formato: la variable $format especifica el formato de la cadena de fecha y hora usando aaaaMMddHHmmss.
  3. Método ParseExact: el método [datetime]::ParseExact se utiliza para convertir la cadena en un objeto DateTime . Toma la cadena de fecha y hora, el formato y un objeto de información cultural.
  4. Generar el resultado: el objeto DateTime resultante se almacena en la variable $dateTime y luego se genera.

Este método garantiza que la conversión sea precisa y que el objeto DateTime resultante represente correctamente la fecha y hora especificadas en la cadena.

También puede ver el resultado en la captura de pantalla a continuación, después de ejecutar el script de PowerShell anterior.

Consulte ¿Cómo convertir cadenas a booleanas en PowerShell?

Convertir cadena a fecha y hora AM/PM usando PowerShell

Para convertir una cadena que incluye una designación AM/PM en un objeto DateTime en PowerShell, puede utilizar el método [datetime]::ParseExact . Este método le permite especificar el formato exacto de la cadena de fecha y hora y analizarlo en consecuencia.

Ejemplo

Supongamos que tiene una cadena de fecha y hora en el formato MM/dd/aaaa hh:mm tt (donde tt indica el designador AM/PM) y desea convertirla. a un objeto DateTime .

# Define the date and time string
$dateString = '08/19/2024 03:45 PM'

# Define the format of the date and time string
$format = 'MM/dd/yyyy hh:mm tt'

# Parse the date and time string to a DateTime object
$dateTime = [datetime]::ParseExact($dateString, $format, [System.Globalization.CultureInfo]::InvariantCulture)

# Output the result
$dateTime

Explicación

  1. Defina la cadena de fecha y hora: la variable $dateString contiene la fecha y la hora en formato de cadena, incluido el designador AM/PM.
    • MM es el mes de dos dígitos.
    • dd es el día de dos dígitos.
    • yyyy es el año de cuatro dígitos.
    • hh es la hora de dos dígitos (reloj de 12 horas).
    • mm es el minuto de dos dígitos.
    • tt es el designador AM/PM.
  2. Método ParseExact: el método [datetime]::ParseExact se utiliza para convertir la cadena en un objeto DateTime . Toma la cadena de fecha y hora, el formato y un objeto de información cultural.
  3. Generar el resultado: el objeto DateTime resultante se almacena en la variable $dateTime y luego se genera.

Este método garantiza que la conversión sea precisa y que el objeto DateTime resultante represente correctamente la fecha y hora especificadas en la cadena, incluido el designador AM/PM.

Lea Convertir cadenas a minúsculas o mayúsculas en PowerShell

PowerShell convierte cadena a fecha y hora UTC

Para convertir una cadena en un objeto DateTime en UTC en PowerShell, puede utilizar el método [datetime]::ParseExact junto con el método ToUniversalTime . Esto le permite especificar el formato de la cadena de fecha, analizarla y luego convertirla a UTC.

Déjame mostrarte un ejemplo.

Ejemplo

Supongamos que tiene una cadena de fecha y hora en el formato aaaa-MM-dd HH:mm:ss y desea convertirla en un objeto DateTime en UTC.

# Define the date and time string
$dateString = '2024-08-19 15:30:00'

# Define the format of the date and time string
$format = 'yyyy-MM-dd HH:mm:ss'

# Parse the date and time string to a DateTime object
$dateTime = [datetime]::ParseExact($dateString, $format, [System.Globalization.CultureInfo]::InvariantCulture)

# Convert the DateTime object to UTC
$dateTimeUTC = $dateTime.ToUniversalTime()

# Output the result
$dateTimeUTC

Explicación

  1. Defina la cadena de fecha y hora: la variable $dateString contiene la fecha y la hora en formato de cadena.
  2. Defina el formato: la variable $format especifica el formato de la cadena de fecha y hora usando aaaa-MM-dd HH:mm:ss.
  3. Método ParseExact: el método [datetime]::ParseExact se utiliza para convertir la cadena en un objeto DateTime . Toma la cadena de fecha y hora, el formato y un objeto de información cultural.
  4. Convertir a UTC: se llama al método .ToUniversalTime() en el objeto DateTime para convertirlo a UTC.
  5. Generar el resultado: el objeto DateTime resultante en UTC se almacena en la variable $dateTimeUTC y luego se genera.

Este método garantiza que la conversión sea precisa y que el objeto DateTime resultante represente correctamente la fecha y la hora en UTC.

Consulte Convertir variables en cadenas en PowerShell

Convierta una cadena a formato de fecha y hora de 24 horas usando PowerShell

Para convertir una cadena en formato de hora de 24 horas en un objeto DateTime en PowerShell, puede utilizar el método [datetime]::ParseExact . Este método le permite especificar el formato exacto de la cadena de fecha y hora y analizarlo en consecuencia.

Déjame mostrarte un ejemplo.

Ejemplo

Supongamos que tiene una cadena de fecha y hora en el formato aaaa-MM-dd HH:mm:ss y desea convertirla en un objeto DateTime .

# Define the date and time string
$dateString = '2024-08-19 14:30:00'

# Define the format of the date and time string
$format = 'yyyy-MM-dd HH:mm:ss'

# Parse the date and time string to a DateTime object
$dateTime = [datetime]::ParseExact($dateString, $format, [System.Globalization.CultureInfo]::InvariantCulture)

# Output the result
$dateTime

Explicación

  1. Defina la cadena de fecha y hora: la variable $dateString contiene la fecha y la hora en formato de cadena en formato de 24 horas.
    • yyyy es el año de cuatro dígitos.
    • MM es el mes de dos dígitos.
    • dd es el día de dos dígitos.
    • HH es la hora de dos dígitos en formato de 24 horas.
    • mm es el minuto de dos dígitos.
    • ss es el segundo de dos dígitos.
  2. Método ParseExact: el método [datetime]::ParseExact se utiliza para convertir la cadena en un objeto DateTime . Toma la cadena de fecha y hora, el formato y un objeto de información cultural.
  3. Generar el resultado: el objeto DateTime resultante se almacena en la variable $dateTime y luego se genera.

Este método garantiza que la conversión sea precisa y que el objeto DateTime resultante represente correctamente la fecha y hora especificadas en la cadena en formato de 24 horas.

Convierta una cadena en fecha y agregue días en PowerShell

Para convertir una cadena en un objeto DateTime y luego agregarle días en PowerShell; puede utilizar el método [datetime]::ParseExact para analizar la cadena y el método AddDays para agregar días al objeto DateTime resultante.

Déjame mostrarte un ejemplo.

Ejemplo

Supongamos que tiene una cadena de fecha en el formato aaaa-MM-dd y desea convertirla en un objeto DateTime y luego agregarle 10 días.

# Define the date string
$dateString = '2024-08-19'

# Define the format of the date string
$format = 'yyyy-MM-dd'

# Parse the date string to a DateTime object
$dateTime = [datetime]::ParseExact($dateString, $format, [System.Globalization.CultureInfo]::InvariantCulture)

# Add 10 days to the DateTime object
$newDateTime = $dateTime.AddDays(10)

# Output the result
$newDateTime

Explicación

  1. Defina la cadena de fecha: la variable $dateString contiene la fecha en formato de cadena.
  2. Defina el formato: la variable $format especifica el formato de la cadena de fecha usando aaaa-MM-dd.
  3. Método ParseExact: el método [datetime]::ParseExact se utiliza para convertir la cadena en un objeto DateTime . Toma la cadena de fecha, el formato y un objeto de información cultural.
  4. Agregar días: el método .AddDays(10) se llama en el objeto DateTime para agregarle 10 días.
  5. Generar el resultado: el objeto DateTime resultante, con 10 días agregados, se almacena en la variable $newDateTime y luego se genera.

Este método garantiza que la conversión sea precisa y que el objeto DateTime resultante represente correctamente la fecha con el número especificado de días agregados.

Conclusión

En este tutorial, he explicado cómo convertir una cadena a una fecha en PowerShell usando diferentes métodos. Puedes utilizar varios métodos como:

  • Utilice Get-Date para conversiones simples.
  • Utilice [datetime]::Parse() para obtener más flexibilidad.
  • Utilice [datetime]::ParseExact() para un control preciso sobre los formatos de fecha.
  • Utilice Get-Date con el parámetro -Format para formatos de salida específicos.

También he explicado los siguientes ejemplos:

  • Convierta una cadena a una fecha con zona horaria usando PowerShell
  • Convierta una cadena en fecha sin hora usando PowerShell
  • PowerShell: convertir cadena a fecha aaaammddhhmmss
  • Convertir cadena a fecha y hora AM/PM usando PowerShell
  • PowerShell convierte cadena a fecha y hora UTC
  • Convierta una cadena al formato Datetime de 24 horas usando PowerShell
  • Convierta una cadena en fecha y agregue días en PowerShell

Espero que esto te ayude. Déjame saber en los comentarios a continuación si tienes alguna pregunta.

Artículos relacionados