Tengo un problema al convertir una fecha que está en formato de cadena, pero no soy capaz de convertirla usando el formato `"aaaaMMdd".
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;
Para analizar un DateTime, utilice uno de los siguientes métodos:
También puede utilizar el patrón try-parse:
Lea más sobre Cadenas de formato de fecha y hora personalizadas.
Para devolver una DateTime como una cadena en formato "aaaaMMdd", puede utilizar el método ToString
.
string date = DateTime.ToString("yyyyMMdd");
En tu caso, asumiendo que no quieres manejar el escenario en el que la fecha tiene un formato diferente o se equivoca, lo más conveniente sería usar ParseExact
:
string dateToParse = "20170506";
DateTime parsedDate = DateTime.ParseExact(dateToParse,
"yyyyMMdd",
CultureInfo.InvariantCulture);
En base a los nombres de las propiedades parece que estás intentando convertir una cadena en una fecha por asignación:
claimantAuxillaryRecord.TPOCDate2 = tpoc2[0].ToString();
Probablemente se deba a la cultura actual de la interfaz de usuario y, por tanto, no puede interpretar la cadena de fecha correctamente cuando se asigna.