yyyy formato fecha ejemplos dar convertir cambiar c# string datetime

formato - iformatprovider datetime c#



Convertir dd/mm/aaaa cadena formateada en Datetime (3)

Necesita utilizar DateTime.ParseExact con el formato "dd/MM/yyyy"

DateTime dt=DateTime.ParseExact("24/01/2013", "dd/MM/yyyy", CultureInfo.InvariantCulture);

Es más seguro si usa d/M/yyyy para el formato, ya que manejará un solo dígito y dos dígitos día / mes. Pero eso realmente depende si está esperando valores de uno o dos dígitos.

Su formato de fecha day/Month/Year podría ser un formato de fecha aceptable para algunas culturas. Por ejemplo, para Canadian Culture en-CA DateTime.Parse funcionaría como:

DateTime dt = DateTime.Parse("24/01/2013", new CultureInfo("en-CA"));

O

System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("en-CA"); DateTime dt = DateTime.Parse("24/01/2013"); //uses the current Thread''s culture

Ambas líneas anteriores funcionarían porque el formato de la cadena es aceptable para la cultura en-CA . Dado que no está suministrando ninguna cultura a su llamada DateTime.Parse , su cultura actual se utiliza para el análisis que no admite el formato de fecha. Lea más sobre esto en DateTime.Parse .

Otro método para analizar es usar DateTime.TryParseExact

DateTime dt; if (DateTime.TryParseExact("24/01/2013", "d/M/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dt)) { //valid date } else { //invalid date }

El grupo de métodos TryParse en .NET Framework no arroja una excepción sobre los valores no válidos, sino que devuelve un valor bool que indica éxito o falla en el análisis.

Tenga en cuenta que he usado single d y M para el día y el mes, respectivamente. Single d y M funcionan para día y mes de un solo dígito o dos dígitos. Entonces, para el formato d/M/yyyy los valores válidos podrían ser:

  • "24/01/2013"
  • "24/1/2013"
  • "12/04/2013" // 4 de diciembre de 2013
  • "12/04/2013"

Para leer más, debería ver: cadenas de formato de fecha y hora personalizadas

Esta pregunta ya tiene una respuesta aquí:

Soy nuevo en DotNet y C #. Quiero convertir una cadena en formato mm/dd/yyyy en el objeto DateTime . Probé la función de análisis como a continuación, pero arroja un error de tiempo de ejecución.

DateTime dt=DateTime.Parse("24/01/2013");

¿Alguna idea sobre cómo puedo convertirlo a datetime?


Puede usar el formato "dd/MM/yyyy" para usarlo en DateTime.ParseExact .

Convierte la representación de cadena especificada de una fecha y hora en su equivalente de fecha y hora utilizando el formato especificado y la información de formato específica de la cultura. El formato de la representación de cadena debe coincidir exactamente con el formato especificado.

DateTime date = DateTime.ParseExact("24/01/2013", "dd/MM/yyyy", CultureInfo.InvariantCulture);

Aquí hay una DEMO .

Para obtener más información, consulte Custom Date and Time Format Strings


use DateTime.ParseExact

string strDate = "24/01/2013"; DateTime date = DateTime.ParseExact(strDate, "dd/MM/YYYY", null)

null usará la cultura actual, que es algo peligrosa. Intenta proporcionar una cultura específica

DateTime date = DateTime.ParseExact(strDate, "dd/MM/YYYY", CultureInfo.InvariantCulture)