tengo algunas cadenas de xxh Formato YYM donde xx es horas y minutos yy es como "05h: 30m". ¿Cuál es una forma elegante de convertir una cadena de este tipo a TimeSpan?analizar la cadena de TimeSpan
Respuesta
Esto parece funcionar, aunque es un poco hacker:
TimeSpan span;
if (TimeSpan.TryParse("05h:30m".Replace("m","").Replace("h",""), out span))
MessageBox.Show(span.ToString());
son TimeSpan.Parse y TimeSpan.TryParse no opciones? Si no está utilizando un formato "aprobado", deberá realizar el análisis sintáctico manualmente. Probablemente capturaría tus dos valores enteros en una expresión regular, y luego trataré de analizarlos en enteros, a partir de ahí puedes crear un nuevo TimeSpan con su constructor.
DateTime.ParseExact
o DateTime.TryParseExact
le permite especificar el formato exacto de la entrada. Después de obtener el DateTime
, puede tomar el DateTime.TimeOfDay
que es un TimeSpan
.
En ausencia de TimeSpan.TryParseExact
, creo que una solución 'elegante' está fuera de la mezcla.
@buyutec Como se sospechaba, este método no funcionaría si los intervalos de tiempo tienen más de 24 horas.
[TimeSpan.TryParseExact] (http://msdn.microsoft.com/ . en-us/library/system.timespan.tryparseexact% 28v% = VS.100 29.aspx) se añadió en .NET 4.0 –
Here'e una posibilidad:
TimeSpan.Parse(s.Remove(2, 1).Remove(5, 1));
Y si quieres que sea más elegante en su código, utilice un método de extensión:
public static TimeSpan ToTimeSpan(this string s)
{
TimeSpan t = TimeSpan.Parse(s.Remove(2, 1).Remove(5, 1));
return t;
}
A continuación, puede hacer
"05h:30m".ToTimeSpan();
Lo que es sobre 'TimeSpan.TryParse ("hh'h: 'mm'm'", fuera span) '? https://stackoverflow.com/a/26769/206730 – Kiquenet
De otro tema:
- 1. Analizar cadena en formato HH.mm a TimeSpan
- 2. Cómo analizar cadenas con horas superiores a 24 en TimeSpan?
- 3. TimeSpan to ISO8601 formato de duración cadena
- 4. analizar la cadena de enumeración de tipo
- 5. PHP Analizar la cadena de fecha
- 6. analizar la cadena de DateTime en C#
- 7. de análisis TimeSpan de cadena incluyendo el formato
- 8. cadena Analizar en javascript
- 9. TimeSpan formato ToString
- 10. Cómo formatear TimeSpan en cadena antes de .NET 4.0
- 11. php cadena de analizar XML
- 12. Cómo analizar la cadena en el mapa
- 13. Timespan formato
- 14. Formato TimeSpan en la columna DataGridView
- 15. TimeSpan ToString "[d.] Hh: mm"
- 16. analizar cadena html con jquery
- 17. Cómo analizar la cadena de fecha hasta la fecha?
- 18. TimeSpan de días en la configuración?
- 19. Android: analizar XML de problemas de cadena
- 20. ¿Código para analizar la cadena de agente de usuario?
- 21. cómo analizar la cadena de agente de usuario? python
- 22. cómo convertir formato de 24 horas TimeSpan a formato de 12 horas TimeSpan?
- 23. Cómo analizar una cadena de cookies
- 24. ¿Analizar cadena en una estructura de árbol?
- 25. TimeSpan FormatString con horas opcionales
- 26. La manera más óptima de analizar la cadena de consulta dentro de una cadena en C#
- 27. forma PHP de analizar cadena HTML
- 28. javascript: cómo analizar una cadena de fecha
- 29. LINQ Average TimeSpan?
- 30. TimeSpan DataFormatString en Gridview
se recomienda usar quizá 'TimeSpan.TryParse ("hh'h: 'mm'm'", fuera lapso)' para una solución más limpia y más robusto – mike
Excepto cuando la cadena es 25h: 30m –
nota: esta solución está limitada a 23h: 59m – fubo