2010-08-21 6 views
5

han código que se supone quecómo decir convert.todatetime que la entrada está en formato dd-mm-aaaa

  • toma tiempo y la fecha de entrada del usuario

  • y convertirlo escrita en el formato de fecha y hora

  • agregue un valor a hrs y muéstrelo.

Mi código funciona bien cuando el usuario da entrada en el formato predeterminado, pero cuando el usuario introduce una fecha como dd-mm-aaaa en lugar de dd/mm/aaaa (por defecto), que no funciona.

¿Cómo puedo cambiar la función convertir para encargarme de esto?

DateTime dt_calc = new DateTime(); 
    dt_calc = Convert.ToDateTime(inputt); 

Respuesta

2

no utilice Convert - DateTime tiene Parse, TryParse, ParseExact y TryParseExact métodos que toman un IFormatProvider aunque para esto simplemente utilizando análisis sintáctico debería funcionar:

DateTime dt_calc = DateTime.Parse(inputt); 

Si prefiere estar seguro, use `TryParse:

DateTime dt_calc; 
DateTime.TryParse(inputt, out dt_calc); // TryParse returns true if success, false if not 
+0

Creo que se puede tratar una cantidad de formatos conocidos, y vea cuál resulta en una entrada válida. Sin embargo, solo los métodos 'ParseExact' toman una cadena de formato. – Lazarus

7

Para convertir una fecha en el formato de uso dd-mm-yyyy:

var dateValue = DateTime.Parse("11/03/1989", new CultureInfo("en-GB", false)); 

Pero no se olvide de añadir el System.Globalization en el encabezado o sólo lo hacen en línea:

var dateValue = DateTime.Parse("11/03/1989", new System.Globalization.CultureInfo("en-AU", false)); 
Cuestiones relacionadas