Conversión de la cadena con formato dd/mm/aaaa a Datetime
Soy nuevo en DotNet y C#. Quiero convertir una cadena en formato mm/dd/yyyy
a un objeto DateTime
. Intenté la función parse como abajo pero está lanzando un error en tiempo de ejecución.
DateTime dt=DateTime.Parse("24/01/2013");
¿Alguna idea de cómo puedo convertirlo a datetime?
95
3
Debe utilizar
DateTime.ParseExact
con el formato `"dd/MM/yyyy".Es más seguro si utiliza
d/M/aaaa
para el formato, ya que eso manejará tanto un dígito como dos dígitos día/mes. Pero eso depende realmente de si se esperan valores de un solo dígito o de dos.Su formato de fecha
día/Mes/Año
puede ser un formato de fecha aceptable para algunas culturas. Por ejemplo, para la cultura canadienseen-CA
DateTime.Parse
funcionaría como:O
Ambas líneas funcionan porque el formato de la cadena es aceptable para la cultura
en-CA
. Dado que no está proporcionando ninguna cultura a su llamadaDateTime.Parse
, su cultura actual se utiliza para el análisis sintáctico que no soporta el formato de la fecha. Lee más sobre esto en DateTime.Parse.Otro método para el análisis sintáctico es utilizar
DateTime.TryParseExact
El grupo de métodos
TryParse
en .Net framework no lanza una excepción en caso de valores no válidos, en su lugar devuelve un valorbool
que indica el éxito o el fracaso en el análisis.**Observe que he utilizado "d" y "M" para el día y el mes respectivamente. La "d" y la "M" simples funcionan tanto para el día como para el mes de uno o dos dígitos. Así que para el formato
d/M/yyyy
los valores válidos podrían ser:Para una mayor lectura debe ver: Cadenas de formato de fecha y hora personalizadas
use
DateTime.ParseExact
null
utilizará la cultura actual, lo cual es algo peligroso. Intente suministrar una cultura específicaPuede utilizar el formato
"dd/MM/yyyy"para utilizarlo en [
DateTime.ParseExact`]1.Convierte la representación de cadena especificada de una fecha y hora a su
Aquí hay un
DEMO
.Para más información, consulte
Custom Date and Time Format Strings