Compruebe varios formatos de fecha utilizando DateTime.TryParse ()

Estoy usando un método para validar cuadros de texto.

public bool ValidateDateTimeTextBoxes(params TextBox[] textBoxes) { DateTime value = DateTime.Today; //string dateFormat = "dd/mm/yyyy"; foreach (var textBox in textBoxes) { if (!DateTime.TryParse(textBox.Text, out value)) { return false; } } return true; } 

Quiero comprobar el formato también. Requiere mm/dd/yyyy , pero desea que sea dd/mm/yyyy

Pruebe DateTime.TryParseExact

 DateTime dt; DateTime.TryParseExact(textBox.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dt); 

Si desea verificar varios formatos a medida que actualiza su pregunta, puede hacerlo utilizando otro método de sobrecarga de TryParseExact que toma el parámetro de format como una matriz de cadena.

 string[] formats = { "dd/MM/yyyy", "MM/dd/yyyy" }; DateTime.TryParseExact(txtBox.Text, formats, CultureInfo.InvariantCulture, DateTimeStyles.None, out value)); 

Por favor, tenga cuidado de la cadena de formato. Como ha mencionado, formatee como dd/mm/yyyy . Aquí mm representa el minute no el mes. Utilice MM para la representación del mes.

 DateTime.TryParseExact(textBox.Text, "dd/MM/yyyy", null, System.Globalization.DateTimeStyles.None, out outDt)) 
  public bool ValidateDateTimeTextBoxes(params TextBox[] textBoxes) { DateTime value = DateTime.Now; //string dateFormat = "dd/mm/yyyy"; foreach (var textBox in textBoxes) { if (!DateTime.TryParse(textBox.Text,"dd/mm/yyyy",new CultureInfo("en-US"), DateTimeStyles.None out value)) { return false; } } return true; } 

Trate de usar TryParseExact

Convierte la representación de cadena especificada de una fecha y hora en su equivalente de DateTime. El formato de la representación de cadena debe coincidir exactamente con un formato especificado. El método devuelve un valor que indica si la conversión se realizó correctamente.

 DateTime.TryParseExact(DateValue, "dd/mm/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out outDatetime); 

Utilice TryParseExact en TryParseExact lugar, que también es más rápido. Ejemplo:

 using System; using System.Globalization; class Program { static void Main() { string dateString = "27/05/2012"; // <-- Valid string dtformat = "dd/mm/yyyy"; DateTime dateTime; if (DateTime.TryParseExact(dateString, dtformat, CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime)) { Console.WriteLine(dateTime); } } }