c# - new - Cómo convertir la cadena “07:35”(HH: MM) a TimeSpan
timespan format hh mm c# (4)
Puedes convertir la hora usando el siguiente código.
TimeSpan _time = TimeSpan.Parse("07:35");
Pero si desea obtener la hora actual del día, puede utilizar el siguiente código:
TimeSpan _CurrentTime = DateTime.Now.TimeOfDay;
El resultado será:
03:54:35.7763461
Con un objeto puede controlar las horas, minutos, segundos, garrapatas, etc.
Me gustaría saber si hay una manera de convertir una cadena con formato de 24 horas a un TimeSpan.
Ahora mismo tengo un "viejo estilo de moda":
string stringTime = "07:35";
string[] values = stringTime.Split('':'');
TimeSpan ts = new TimeSpan(values[0], values[1], 0);
Si bien es correcto que esto funcionará:
TimeSpan time = TimeSpan.Parse("07:35");
Y si lo estás utilizando para validación ...
TimeSpan time;
if (!TimeSpan.TryParse("07:35", out time))
{
// handle validation error
}
Tenga en cuenta que TimeSpan
está destinado principalmente a trabajar con el tiempo transcurrido, en lugar de la hora del día. Aceptará valores mayores a 24 horas y también aceptará valores negativos.
Si necesita validar que la cadena de entrada es una hora del día válida (> = 00:00 y <24:00), entonces debería considerar esto en su lugar:
DateTime dt;
if (!DateTime.TryParseExact("07:35", "HH:mm", CultureInfo.InvariantCulture,
DateTimeStyles.None, out dt))
{
// handle validation error
}
TimeSpan time = dt.TimeOfDay;
Como beneficio adicional, esto también analizará las horas con formato de 12 horas cuando se incluya una mañana o una tarde, siempre que proporcione la cadena de formato adecuada, como "h:mm tt"
.
Tratar
var ts = TimeSpan.Parse(stringTime);
Con un nuevo .NET también tienes
TimeSpan ts;
if(!TimeSpan.TryParse(stringTime, out ts)){
// throw exception or whatnot
}
// ts now has a valid format
Este es el idioma general para analizar cadenas en .NET con la primera versión que maneja una cadena errónea lanzando FormatException y la última permitiendo que TryParse booleano le dé la información directamente.
Usa TimeSpan.Parse
para convertir la cadena
http://msdn.microsoft.com/en-us/library/system.timespan.parse(v=vs.110).aspx