Spanish Presentar hora

jluisruelas

Member
Licensed User
Longtime User
amigos quiero saber como hacer para que si en una variable tengo la hora en alguno de los siguientes formatos 13:45 o 2:5(que significa 2:05) pasarlos al formato normal de hora para mostrarlos en un label. he intentado con el sig. codigo pero falla
Dim ton, toff As String
Dim ton1 As Long
apuntador=sql1.ExecQuery("SELECT * FROM datos_aparatos")
apuntador.Position=0
ton=apuntador.GetString("ton")
DateTime.TimeFormat="hh:mm tt" falla aqui
ton1=DateTime.TimeParse(ton) y aqui
ToastMessageShow(DateTime.Time(ton1),True) y aqui
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola

Como decia Jack el destripador: "vayamos por partes" :D

Cuando pongas código hazlo pulsando en el icono quinto de la derecha y asi es mas entendible y alguien llamado E... no te llamara la atencion ;)


DateTime.TimeFormat="hh:mm tt" falla aqui

las "tt" no existen para ese formato, ademas tendrias que anteponerle dos puntos si quisieras segundos (hh:mm:ss)

Por otro lado si lo que pretendes es que te formatee las 2:5 por 02:05, con eso tampoco lo vas a conseguir

Prueba esto que te formateará como tu quieres manteniendo lo tuyo, si en ton tienes la hora en formato 2:5 por ejemplo

B4X:
ton = "2:5"
DateTime.TimeFormat = "hh:mm"
ton1 = DateTime.TimeParse(ton) ' devuelve ticks
ToastMessageShow(FormatearHora(ton1),True)




Sub FormatearHora (HoraIn As Long)
  ' pongo la hora en formato hh:mm:ss con 0 (ceros) para redondear
   Dim Hora As String
   Hora = NumberFormat(DateTime.GetHour(HoraIn),2,0) & ":" & NumberFormat(DateTime.GetMinute(HoraIn),2,0) & ":" & NumberFormat(DateTime.GetSecond(HoraIn),2,0)
   Return Hora
End Sub


Saludos
 
Top