Si conoce exactamente el formato de la fecha/hora (es decir, nunca cambia y no depende de la cultura o la configuración regional del usuario), puede usar DateTime.TryParseExact
.
Por ejemplo:
cadena
DateTime result;
if (DateTime.TryParseExact(
str, // The string you want to parse
"dd-MM-yyyy", // The format of the string you want to parse.
CultureInfo.InvariantCulture, // The culture that was used
// to create the date/time notation
DateTimeStyles.None, // Extra flags that control what assumptions
// the parser can make, and where whitespace
// may occur that is ignored.
out result)) // Where the parsed result is stored.
{
// Only when the method returns true did the parsing succeed.
// Therefore it is in an if-statement and at this point
// 'result' contains a valid DateTime.
}
El formato puede ser un completamente especificado custom date/time format (como dd-MM-yyyy
), o una general format specifier (como g
). Para este último, la cultura importa en cuanto a cómo se formatea la fecha. Por ejemplo, en los Países Bajos las fechas se escriben como 26-07-2012
(dd-MM-yyyy
) mientras que en EE. UU. Las fechas se escriben como 7/26/2012
(M/d/yyyy
).
Sin embargo, todo esto solo funciona cuando su cadena str
contiene solo la fecha que desea analizar. Si tienes una cadena más grande con todo tipo de caracteres no deseados alrededor de la fecha, entonces primero tendrás que encontrar la fecha. Esto se puede hacer usando una expresión regular, que es un tema totalmente diferente en sí mismo. Parte de la información general sobre expresiones regulares (expresiones regulares) en C# se puede encontrar en here. Una referencia de expresión regular es here. Por ejemplo, se puede encontrar una fecha similar a d/M/yyyy
usando la expresión regular \d{1,2}\/\d{1,2}\/\d{4}
.
Duplicar Posible de http://stackoverflow.com/questions/11660423/string-comparison-on-date-format-wont-work – MikeKulls
referencia útil para personas que utilizan la sintaxis de consulta LINQ en su lugar http://stackoverflow.com/questions/9003697/how-to-i-use-tryparse-in-a-linq-query-of-xml-data –