es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Convertir tiempo y fecha en cadena a fecha en VB.net

Estoy usando fuentes RSS de múltiples fuentes y ordeno las fuentes por fecha. Sin embargo, las fechas que recibo están en diferentes husos horarios.

Este es el formato de algunas de las cadenas de fecha que recibo:

Wed 08 Dec 2021 01:40:31 -0500
Wed 08 Dec 2021 11:11:19 -0600

El “-0500” indica el huso horario que es UTC-5. Necesito usar ese “-0500” para convertir esta cadena en una fecha y la fecha necesita estar en UTC solamente.

Básicamente, de “Wed 08 Dec 2021 01:40:31 -0500” a “12/08/2021 06:40:31”.

He logrado dividir la cadena para ordenarla por fecha, pero debido a la diferencia horaria, no es realmente útil.

¿Hay algún código que pueda usar para convertir la cadena tal como está en una fecha y solo en horario UTC? ¿O hay solo un lugar donde puedo comenzar?

Gracias de antemano.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para convertir la cadena dada en una fecha en la zona horaria UTC, puedes utilizar la clase DateTimeOffset de VB.NET. Esta clase es útil cuando se trabaja con valores de fecha y hora con información de zona horaria.

    Aquí tienes un ejemplo de código que convierte la cadena de fecha dada en un valor DateTime en la zona horaria UTC:

    vb.net
    Dim dateString As String = "Mié 08 Dic 2021 01:40:31 -0500"
    Dim dateOffset As DateTimeOffset = DateTimeOffset.ParseExact(dateString, "ddd dd MMM yyyy hh:mm:ss zzz", CultureInfo.InvariantCulture)
    Dim utcDateTime As DateTime = dateOffset.UtcDateTime
    Dim formattedDate As String = utcDateTime.ToString("MM/dd/yyyy HH:mm:ss")

    El método DateTimeOffset.ParseExact se utiliza para analizar la cadena de fecha en un objeto DateTimeOffset. El segundo parámetro es la cadena de formato que coincide con el formato de la cadena de fecha. El CultureInfo.InvariantCulture especifica la cultura a utilizar para el análisis, en este caso, es el mismo formato en todas las fuentes.

    Una vez que tienes el objeto DateTimeOffset, puedes acceder a la propiedad UtcDateTime para obtener la fecha y hora en la zona horaria UTC. Luego, puedes dar formato al objeto DateTime utilizando el método ToString.

    Puedes utilizar este fragmento de código para convertir todas las cadenas de fecha en valores DateTime en la zona horaria UTC.

Comments are closed.