Necesito saber si una cadena dada es una cadena de formato de fecha y hora válida porque la cadena puede representar otras cosas. Intenté DateTime.ParseExact (somedate.ToString (formato), formato) pensando que sería un error en un formato no válido, pero no es así.Cadena contiene solo un conjunto dado de caracteres
Así que estoy bien con simplemente probar si la cadena contiene solo caracteres "yYmMdDsShH". Algo como std :: string.find_first_not_of funcionaría, pero System.String no tiene esto.
Pensé que RegEx podría hacer el truco, pero estoy muy débil con expresiones regulares.
Tenga en cuenta que Linq no está disponible para esta (solo .NET 2.0).
Actualizado
Para aclarar, necesito saber si una determinada cadena representa un formato de fecha y no otra cosa como esta:
if (input == "some special value")
... // it's a special case value
else if (Environment.GetEnvironmentVariable(input))
... // it's an environment variable name
else if (IsDateTimeFormatString(input))
... // it's a date time format string
else if (input.IndexOfAny(Path.GetInvalidPathChars()) < 0)
... // it's a file path
else
throw new Exception(); // Not a valid input
puedo restringir una cadena de formato DateTime a solamente "yYmMdDsShH", o puedo agregarle algunos caracteres separadores, depende de mí permitir o no permitir.
¿Está buscando caracteres de cadena (yYmM, etc.) o los valores numéricos que van allí? (?. 100720 (por hoy) – AllenG
Actualizado aclarar – Tergiver