Convierta DateTime al formato de cadena (“aaaaMMdd”)

Tengo problemas para convertir una fecha y hora en formato de cadena, pero no puedo convertirla al formato aaaamMMdd.

mi código es:

string tpoc = refSubClaim.BenefitsFolder.BenefitFolderIdNumber.ToString(); string[] tpocinfo = Regex.Split(tpoc,";"); for (int i = 0; i < tpocinfo.Length; i++) { switch (i) { case 0: { string[] tpoc2 = Regex.Split(tpocinfo[0], ","); claimantAuxillaryRecord.TPOCDate2 = tpoc2[0].ToString(); claimantAuxillaryRecord.TPOCAmount2 = Convert.ToDecimal(tpoc2[1]); claimantAuxillaryRecord.FundingDelayedBeyondTPOCStartDate2 = tpoc2[2].ToString(); } break; 

si tiene una fecha en una cadena con el formato “ddMMyyyy” y desea convertirla a “aaaaMMdd”, podría hacer esto:

 DateTime dt = DateTime.ParseExact(dateString, "ddMMyyyy", CultureInfo.InvariantCulture); dt.ToString("yyyyMMdd"); 

Parming DateTime:

Para analizar un DateTime, use uno de los siguientes métodos:

  • DateTime.Parse
  • DateTime.ParseExact

Alternativamente, puedes usar el patrón try-parse :

  • DateTime.TryParse
  • DateTime.TryParseExact

Obtenga más información sobre cadenas de formato de fecha y hora personalizadas .

Convirtiendo DateTime en una cadena:

Para devolver un DateTime como una cadena en formato “aaaamMMdd”, puede usar el método ToString .

  • Ejemplo de fragmento de código: string date = DateTime.ToString("yyyyMMdd");
  • Nótese que las M ‘s en mayúsculas se refieren a los meses y las m ‘ s de menor valor a los minutos.

Tu caso:

En su caso, suponiendo que no desea manejar el escenario cuando la fecha es de formato diferente o incorrecto, sería más conveniente usar ParseExact :

 string dateToParse = "20170506"; DateTime parsedDate = DateTime.ParseExact(dateToParse, "yyyyMMdd", CultureInfo.InvariantCulture); 

Puede convertir su cadena a un valor DateTime como este:

 DateTime date = DateTime.Parse(something); 

Puede convertir un valor de DateTime en una cadena formateada como esta:

 date.ToString("yyyyMMdd"); 

Formato de fecha de cadena a aaaa-MM-dd: Ejemplo:

 TxtCalStDate.Text = Convert.ToDateTime(objItem["StartDate"]).ToString("yyyy/MM/dd"); 

Si desea tener DATE como cadena con TIME también. Podemos hacer así:

 //Date and Time is taking as current system Date-Time DateTime.Now.ToString("yyyyMMdd-HHMMss"); 

Utilice DateTime.TryParseExact() si desea hacer coincidir con un formato de fecha específico

  string format = "yyyyMMdd"; DateTime dateTime; DateTime.TryParseExact(dateString, format, CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime); 

Puede utilizar DateTime.TryParse() lugar de DateTime.Parse() .
Con TryParse() tiene un valor de retorno si fue exitoso y con Parse() tiene que manejar una excepción

no es una cadena con aaaa / mm / dd y lo necesito en formato aaaamMMdd

Si solo necesita quitar las barras de una cadena, ¿no las reemplaza?

Ejemplo:

 myDateString = "2013/03/28"; myDateString = myDateString.Replace("/", ""); 

myDateString ahora debería ser “20130328”.

Menos de un exceso 🙂

Simplemente hazlo de esta manera.

 string yourFormat = DateTime.Now.ToString("yyyyMMdd"); 

Feliz encoding 🙂

Según los nombres de las propiedades, parece que intenta convertir una cadena en una fecha por asignación:

 claimantAuxillaryRecord.TPOCDate2 = tpoc2[0].ToString(); 

Probablemente se deba a la cultura de UI actual y, por lo tanto, no puede interpretar correctamente la cadena de fecha cuando se le asigna.

Es la forma simple de convertir a formato

  DateTime.Now.ToString("yyyyMMdd"); 

Una forma más sencilla que encontré al buscar esta respuesta también;

 string date = DateTime.Now.ToString("yyyyMMdd", System.Globalization.CultureInfo.GetCultureInfo("en-US")); 

Puedes probar estos códigos

 claimantAuxillaryRecord.TPOCDate2 = Convert.ToDateTime(tpoc2[0]).ToString("yyyyMMdd"); 

O

 claimantAuxillaryRecord.TPOCDate2 = Convert.ToDateTime(tpoc2[0]).ToString("yyyyMMdd hh:mm:ss");