¿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 $dateAquí, 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 $dateEn 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 $dateEsto 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 $dateEjemplo 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 $dateLeer 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 $dateOnlyExplicación
- Defina la cadena de fecha: la variable
$dateStringcontiene la fecha en formato de cadena. - Definir el formato: la variable
$formatespecifica el formato de la cadena de fecha. - Método ParseExact: el método
[datetime]::ParseExactse utiliza para convertir la cadena en un objetoDateTime. Toma la cadena de fecha, el formato y un objeto de información cultural. - Extraer la fecha: se accede a la propiedad
.Datedel objetoDateTimepara 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
$dateTimeExplicación
- Defina la cadena de fecha y hora: la variable
$dateStringcontiene la fecha y la hora en formato de cadena. - Defina el formato: la variable
$formatespecifica el formato de la cadena de fecha y hora usandoaaaaMMddHHmmss. - Método ParseExact: el método
[datetime]::ParseExactse utiliza para convertir la cadena en un objetoDateTime. Toma la cadena de fecha y hora, el formato y un objeto de información cultural. - Generar el resultado: el objeto
DateTimeresultante se almacena en la variable$dateTimey 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
$dateTimeExplicación
- Defina la cadena de fecha y hora: la variable
$dateStringcontiene la fecha y la hora en formato de cadena, incluido el designador AM/PM. MMes el mes de dos dígitos.
ddes el día de dos dígitos.yyyyes el año de cuatro dígitos.hhes la hora de dos dígitos (reloj de 12 horas).mmes el minuto de dos dígitos.ttes el designador AM/PM.- Método ParseExact: el método
[datetime]::ParseExactse utiliza para convertir la cadena en un objetoDateTime. Toma la cadena de fecha y hora, el formato y un objeto de información cultural. - Generar el resultado: el objeto
DateTimeresultante se almacena en la variable$dateTimey 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
$dateTimeUTCExplicación
- Defina la cadena de fecha y hora: la variable
$dateStringcontiene la fecha y la hora en formato de cadena. - Defina el formato: la variable
$formatespecifica el formato de la cadena de fecha y hora usandoaaaa-MM-dd HH:mm:ss. - Método ParseExact: el método
[datetime]::ParseExactse utiliza para convertir la cadena en un objetoDateTime. Toma la cadena de fecha y hora, el formato y un objeto de información cultural. - Convertir a UTC: se llama al método
.ToUniversalTime()en el objetoDateTimepara convertirlo a UTC. - Generar el resultado: el objeto
DateTimeresultante en UTC se almacena en la variable$dateTimeUTCy 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
$dateTimeExplicación
- Defina la cadena de fecha y hora: la variable
$dateStringcontiene la fecha y la hora en formato de cadena en formato de 24 horas. yyyyes el año de cuatro dígitos.
MMes el mes de dos dígitos.ddes el día de dos dígitos.HHes la hora de dos dígitos en formato de 24 horas.mmes el minuto de dos dígitos.sses el segundo de dos dígitos.- Método ParseExact: el método
[datetime]::ParseExactse utiliza para convertir la cadena en un objetoDateTime. Toma la cadena de fecha y hora, el formato y un objeto de información cultural. - Generar el resultado: el objeto
DateTimeresultante se almacena en la variable$dateTimey 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
$newDateTimeExplicación
- Defina la cadena de fecha: la variable
$dateStringcontiene la fecha en formato de cadena. - Defina el formato: la variable
$formatespecifica el formato de la cadena de fecha usandoaaaa-MM-dd. - Método ParseExact: el método
[datetime]::ParseExactse utiliza para convertir la cadena en un objetoDateTime. Toma la cadena de fecha, el formato y un objeto de información cultural. - Agregar días: el método
.AddDays(10)se llama en el objetoDateTimepara agregarle 10 días. - Generar el resultado: el objeto
DateTimeresultante, con 10 días agregados, se almacena en la variable$newDateTimey 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-Datepara conversiones simples. - Utilice
[datetime]::Parse()para obtener más flexibilidad. - Utilice
[datetime]::ParseExact()para un control preciso sobre los formatos de fecha. - Utilice
Get-Datecon el parámetro-Formatpara 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.




