menu

MELVIN DEV

DEVELOPING MY OWN LIFE.

Windows 10 Apps

Try Free

img
image

Try Free

img
image

Free

img
image

Try Free

img
image

Free

img
image

Portfolio

Time Zone Info En Visual Basic.Net

Mostrar zona horaria en vb

Hola Programadores, en este dia dare un aporte completo de como extraer la zona horaria de diferentes partes del mundo Mediante la clase TimeZoneInfo en Visual Basic.Net
Muchas veces nos vemos en la necesidad trabajar con fechas y horas, esto sucede casi siempre, parte es compleja pero parte no es muy dificil.
Esta tarde me vi en la obligacion de extraer una hora de un diferente luagar del mundo, mientras estaba creando la aplicasion en ASP.Net , casi siempre tomaba la opcion de usar Date.Now.AddHours(2) mas no cumplia la necesidad porque no todas las zonas horarias diferen de 2 horas adelantadas desde mi locasion, Unas requieren 2 horas , otras requieren 4 y asi..,
La mejor Opcion es extraer las Zonas horarias, y convertirlas a una hora espesifica me diante ConvertTimeBySystemTimeZoneId de la clase TimeZoneInfo
en el ejemplo siguiente extraremos todas las zonas horarias conocidas y extraremos hora actual.

Ejemplo:
Para crear este ejemplo necesitaremos los siguientes controles en el formulario.

  • Un combobox llamado: timeZoneCollectionComboBox.
  • Dos labels.
    -El primer label llamado LabelLocalSystemTime que es el que nos mostrara la hora del sistema actual donde vivimos.
    -El Segundo label llamado Labelzonahoariaactual que es el que nos mostrara la hora de la zona horaria seleccionada.

El formulario nos quedara de la siguiente manera:

timezoneinfo

Ahora que ya tenemos creado el formulario Procederemos a crear el codigo.
En el evento load del formulario agregaremos un loop para extraer todas las zonas horarias y las agregaremos al timeZoneCollectionComboBox tomando el id como referencia de cada zona horaria

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Try
For Each it In System.TimeZoneInfo.GetSystemTimeZones
Me.timeZoneCollectionComboBox.Items.Add(it.Id)
Next
Catch ex As Exception
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub

El siguiente codigo nos extraera la hora actual de la zona horaria seleccionada en el timeZoneCollectionComboBox
en el evento SelectedIndexChanged agregue el siguiente codigo.

Private Sub timeZoneCollectionComboBox_SelectedIndexChanged(sender As Object, e As EventArgs) Handles timeZoneCollectionComboBox.SelectedIndexChanged
Try
Me.LabelLocalSystemTime.Text = "Ho del sistema: " & Now.ToLocalTime.ToShortTimeString
Dim getTimeZone As String = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(Now.ToLocalTime, Me.timeZoneCollectionComboBox.SelectedItem).ToShortTimeString
Me.Labelzonahoariaactual.Text = "Hora de la Zona Horaria: " & getTimeZone
Catch ex As Exception
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub

Resultado de vista de las Zonas horarias en timeZoneCollectionComboBox

timezoneinfo

Hora extraida al momento de seleccionar una zona horaria del timeZoneCollectionComboBox

timezoneinfo

Espero hayan disfrutado de este ejemplo :)