La cadena no fue reconocida como una fecha y hora válida usando ParseExact.
Estoy tratando de obtener datos de Angular y guardarlos en una base de datos a través de WebAPI utilizando C#. Ahora tengo un problema al convertir la fecha de nacimiento (DOB), obtengo este error:
“la cadena no se reconoce como una fecha y hora válida”
Formato de fecha en Angular: “mié ene 05 2022 00:00:00 GMT+0530 (India Standard Time)”
Formato de fecha en la base de datos: “AAAA-MM-DD”
Ahora necesito convertirlo a este formato.
string dob = httprequest.Form.Get("dob");
MySqlConnection myConnection = new MySqlConnection();
myConnection.ConnectionString = @"Data Source=localhost; Database=pramod; User ID=itesuser; password=ites; Port=3309";
MySqlCommand sqlCmd = new MySqlCommand();
sqlCmd.CommandType = CommandType.Text;
sqlCmd.CommandText = "Insert Into emp_ang (DOB) Values (@dob)";
sqlCmd.Connection = myConnection;
DateTime birth = DateTime.ParseExact(dob, "yyyy/MM/dd", CultureInfo.InvariantCulture);
sqlCmd.Parameters.AddWithValue("@dob", birth);
myConnection.Open();
int rowInserted = sqlCmd.ExecuteNonQuery();
myConnection.Close();
return Ok("inserted");
davy.ai
Según el mensaje de error, parece que la cadena pasada para
dob
no puede ser reconocida como un formato de fecha y hora válido.El formato de fecha de Angular especificado es
"Mié ene 05 2022 00:00:00 GMT+0530 (Hora estándar de India)"
y el formato de fecha de la base de datos es"AAAA-MM-DD"
. Para convertir la cadena de fecha del formato de Angular al formato de la base de datos, puedes usar el métodoDateTime.ParseExact()
con la cadena de formato adecuada.En el fragmento de código proporcionado, puedes reemplazar la cadena de formato
"yyyy/MM/dd"
por"ddd MMM dd yyyy HH:mm:ss 'GMT'zzz"
, que coincide con el formato de fecha de Angular especificado. El código modificado para realizar la conversión e insertar la fecha en la tabla de la base de datos puede ser el siguiente:Este código primero analiza la cadena
dob
utilizandoDateTime.ParseExact()
y la cadena de formato especificada. Luego, convierte el objetoDateTime
resultante al formato de fecha de la base de datos ("yyyy-MM-dd"
) utilizando el métodoToString()
, y establece el valor del parámetro para el comando SQL. Finalmente, ejecuta el comando SQL para insertar la fecha en la base de datos.