Te damos la bienvenida a nuestra página, en este sitio vas a hallar la solucíon que estabas buscando.
Solución:
Debe convertir sus datos a TimeSpan y luego usar el formato:"hh:mm"
string test ="08:00:00";
TimeSpan ts = TimeSpan.Parse(test);
Console.Write(ts.ToString(@"hh:mm"));
En tu caso:
var test = dataRow.Field("fstart").ToString(@"hh:mm"));
Recuerda escapar del colon :
Puede ver: Cadenas de formato TimeSpan personalizadas
No hay necesidad de convertir de hh.mm.ss
a hh.mm
. TimeSpan
se almacena como un número de tics (1 tic == 100 nanosegundos) y no tiene un formato inherente. Lo que tienes que hacer es convertir el TimeSpan
en un humano legible string! Esto implica formatear. Si no especifica un formato explícitamente, se utilizará un formato predeterminado. En este caso hh.mm.ss
.
string formatted = timespan.ToString(@"hh.mm");
Nota: Esta sobrecarga de ToString
existe desde .NET 4.0. ¡No es compatible con los símbolos separadores de marcador de posición de fecha y hora! Por lo tanto, debe incluirlos como (escapados) string literales.
La forma habitual de formatear cadenas parece no funcionar por alguna extraña razón (probado con .NET 3.5). (No importa si escapa o no del símbolo separador):
var timespan = TimeSpan.FromSeconds(1234);
string formatted = String.Format("0:hh.mm", timespan); // ==> 00:20:34
Sin embargo, puede construir el string como esto
string formatted =
String.Format("0:00.1:00", Math.Floor(timespan.TotalHours), timespan.Minutes);
o comenzando con VS2015 / C# 6.0, usando string interpolación:
string formatted = $"Math.Floor(timespan.TotalHours):00.timespan.Minutes:00";
Puede utilizar los métodos TimeSpan:
ToString("hh':'mm")
// or
ToString(@"hh:mm")
Consulte también todos los formatos disponibles aquí http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx
Comentarios y valoraciones del tutorial
Si te apasiona este mundo, eres capaz de dejar un enunciado acerca de qué te ha gustado de esta crónica.