Impossible de convertir la chaîne en datetime

la programmation


Bonjour
je veux convertir la chaîne str en DateTime, str=”2024/22/03″
SYSTEMFORMAT de mon ordinateur est m/d/yyyy
je veux le Date_1 au format aaaa/MM/jj
Date_1 = Convert.ToDateTime(str, “aaaa/MM/jj”);

Ce que j’ai essayé :

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

Solution 1

Méthode DateTime.ParseExact (Système) | Microsoft Apprendre[^] tu feras ce que tu veux :

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);

et le résultat :

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

Solution 2

Pour compléter ce que Graeme a dit, une meilleure solution consiste à utiliser Méthode DateTime.TryParseExact (Système) | Microsoft Apprendre[^] à la place, de cette façon, vous pouvez repérer les erreurs au lieu de planter votre application si les données ne sont pas au format attendu pour une raison quelconque :

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をコピーしました