无法将字符串转换为日期时间


你好
我想将字符串 str 转换为 DateTime,str=”2024/22/03″
我的计算机的系统格式是 m/d/yyyy
我想要格式为 yyyy/MM/dd 的 Date_1
Date_1 = Convert.ToDateTime(str, “yyyy/MM/dd”);

我尝试过的:

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

解决方案1

DateTime.ParseExact 方法(系统) | 微软学习[^] 会做你想做的事:

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

和输出:

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

解决方案2

要补充格雷姆所说的,更好的解决方案是使用 DateTime.TryParseExact 方法(系统) | 微软学习[^] 相反 – 如果数据由于某种原因不是您期望的格式,这样您就可以发现错误,而不是应用程序崩溃:

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