Principales respuestas
¿Cómo puedo obtener una cadena de tiempo con el siguiente formato?

Pregunta
-
Respuestas
-
tengo el dato como cadena, pero en todo caso ¿no se podría convertir esa cadena a DateTime para luego aplicarle el formato?
Sí, pero habría que saber exactamente cuáles son exactamente las posibilidades que te pueden llegar en la cadena. Por ejemplo, si se sabe que siempre llega como minutos:segundos, por ejemplo, 5:12, se puede usar DateTime.TryParseExact pasándole "m:ss" en el formato, o se puede trocear la cadena y hacer el cálculo a mano. En este último caso no sería necesario pasar por un DateTeim, ya que una vez que tengas las porciones de la cadena pueden simplemente formatearse para producir el resultado deseado:
Dim entrada = "5:12" 'Ejemplo Dim partes as String() = entrada.Split(":") Dim minutos as Integer = Integer.Parse(partes(0)) Dim segundos as Integer = Integer.Parse(partes(1)) Dim resultado as String = String.Format("00:00:{0:00}:{0:00}", minutos, segundos)
Este ejemplo presume que siempre hay dos partes separadas por dos puntos en la cadena de entrada. Desde luego, este código se irá complicando según quieras añadirle más combinaciones de datos de entrada.
- Editado Alberto PoblacionMVP miércoles, 24 de marzo de 2021 14:30
- Marcado como respuesta James2016-2 miércoles, 24 de marzo de 2021 18:18
-
Deleted
- Marcado como respuesta James2016-2 miércoles, 24 de marzo de 2021 18:19
Todas las respuestas
-
¿Necesariamente te llega la información en forma de string? ¿No la tienes previamente en forma de DateTime? Porque si la tienes como DateTime, entonces es muy sencillo darle ese formato, basta con usar la instrucción Format:
Dim tiempo as DateTime = ....
Dim resultado as String = tiempo.Format("dd:HH:mm:ss")
-
¿Necesariamente te llega la información en forma de string? ¿No la tienes previamente en forma de DateTime? Porque si la tienes como DateTime, entonces es muy sencillo darle ese formato, basta con usar la instrucción Format:
Dim tiempo as DateTime = ....
Dim resultado as String = tiempo.Format("dd:HH:mm:ss")
-
Hola James,
Gracias por levantar tu consulta en los foros de MSDN.
Eric Ruiz
____________________________
Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.
Si tiene algún cumplido o reclamo sobre el soporte de MSDN siéntase en la libertad de contactar MSDNFSF@microsoft.com.
-
tengo el dato como cadena, pero en todo caso ¿no se podría convertir esa cadena a DateTime para luego aplicarle el formato?
Sí, pero habría que saber exactamente cuáles son exactamente las posibilidades que te pueden llegar en la cadena. Por ejemplo, si se sabe que siempre llega como minutos:segundos, por ejemplo, 5:12, se puede usar DateTime.TryParseExact pasándole "m:ss" en el formato, o se puede trocear la cadena y hacer el cálculo a mano. En este último caso no sería necesario pasar por un DateTeim, ya que una vez que tengas las porciones de la cadena pueden simplemente formatearse para producir el resultado deseado:
Dim entrada = "5:12" 'Ejemplo Dim partes as String() = entrada.Split(":") Dim minutos as Integer = Integer.Parse(partes(0)) Dim segundos as Integer = Integer.Parse(partes(1)) Dim resultado as String = String.Format("00:00:{0:00}:{0:00}", minutos, segundos)
Este ejemplo presume que siempre hay dos partes separadas por dos puntos en la cadena de entrada. Desde luego, este código se irá complicando según quieras añadirle más combinaciones de datos de entrada.
- Editado Alberto PoblacionMVP miércoles, 24 de marzo de 2021 14:30
- Marcado como respuesta James2016-2 miércoles, 24 de marzo de 2021 18:18
-
Deleted
- Marcado como respuesta James2016-2 miércoles, 24 de marzo de 2021 18:19
-
Eso funcionará... a no ser que se reciba un tiempo tal como "125:20" (125 minutos y 20 segundos) y se desee obtener "00:02:05:20" (dos horas, cinco minutos y veinte segundos).
Por eso decía yo que es un requisito importante conocer previamente el rango y tipo de cadenas de entrada que se espera recibir.
-
Eso funcionará... a no ser que se reciba un tiempo tal como "125:20" (125 minutos y 20 segundos) y se desee obtener "00:02:05:20" (dos horas, cinco minutos y veinte segundos).
Por eso decía yo que es un requisito importante conocer previamente el rango y tipo de cadenas de entrada que se espera recibir.
-