No se pudo convertir la cadena a fecha y hora

programación


Hola
Quiero convertir la cadena str a DateTime, str=”2024/22/03″
EL FORMATO DEL SISTEMA de mi computadora es m/d/yyyy
Quiero la Fecha_1 en formato aaaa/MM/dd
Fecha_1 = Convert.ToDateTime(cadena, “aaaa/MM/dd”);

Lo que he probado:

str = "2024/12/03"; 
Date_1 = Convert.ToDateTime(str, "yyyy/MM/dd");

Solución 1

Método DateTime.ParseExact (Sistema) | Microsoft aprende[^] hará lo que quieras:

C#
string str = "2024/22/03";

// Parse the string into a DateTime object with the specified format
DateTime dateTime = DateTime.ParseExact(str, "yyyy/dd/MM", null);

// Format the DateTime object into the desired format
string formattedDate = dateTime.ToString("yyyy/MM/dd");

Console.WriteLine("Original string: " + str);
Console.WriteLine("Formatted date: " + formattedDate);

y la salida:

Original string: 2024/22/03
Formatted date: 2024/03/22

Solución 2

Para agregar a lo que Graeme ha dicho, una mejor solución es usar Método DateTime.TryParseExact (Sistema) | Microsoft aprende[^] en su lugar, de esa manera podrás detectar errores en lugar de que tu aplicación falle si los datos no están en el formato esperado por algún motivo:

C#
DateTime dt;
if (!DateTime.TryParseExact(str, "yyyy/MM/dd", CultureInfo.InvariantCulture, DateTimeStyles.None, out dt))
   {
   ... report or log the problem
   return;
   }
... dt contains a valid date set at midnight here

コメント

タイトルとURLをコピーしました