C# 将字符串转换为日期时间

Minahil Noor 2024年2月16日
  1. C# 使用 Convert.ToDateTime() 将字符串转换为 DateTime
  2. C# 使用 DateTime.Parse() 将字符串转换为 DateTime
  3. C# 使用 DateTime.ParseExact()string 转换为 DateTime
  4. 结论
C# 将字符串转换为日期时间

在大多数情况下,我们以字符串形式获取日期,并且希望分别使用日,月和年。不用担心,在 C# 中,为了将字符串转换为 DateTime 对象,我们使用了一个名为 DateTime 的预定义类。

有几种在 C# 中将字符串转换为 DateTime 的方法,但是在这里,我们仅通过运行示例详细说明三种方法。这些方法是 Convert.ToDateTime()DateTime.Parse()DateTime.ParseExact()

C# 使用 Convert.ToDateTime() 将字符串转换为 DateTime

Convert.ToDateTime() 的正确语法是

Convert.ToDateTime(dateTobeConverted);
Convert.ToDateTime(dateTobeConverted, cultureInfo);

这里应该注意,如果你不提供区域性信息,那么默认情况下,编译器会将我们的日期字符串视为月/日/年。CultureInfoSystem.Globalization 命名空间中的一个 C# 类,有关特定的 CultureInfo

using System;

public class Conversion {
  public static void Main() {
    string CurrentDate = "06/04/2020";

    // Use of Convert.ToDateTime()
    DateTime DateObject = Convert.ToDateTime(CurrentDate);
    Console.WriteLine("The Date is: " + DateObject.Day + " " + DateObject.Month + " " +
                      DateObject.Year);
  }
}

输出:

The Date is: 4 6 2020

现在,我们将通过传递 CultureInfo 对象作为参数来实现它。

using System;
using System.Globalization;
public class Conversion {
  public static void Main() {
    string CurrentDate = "06/04/2020";

    // Creating new CultureInfo Object
    // You can use different cultures like French, Spanish etc.
    CultureInfo Culture = new CultureInfo("en-US");
    // Use of Convert.ToDateTime()
    DateTime DateObject = Convert.ToDateTime(CurrentDate, Culture);
    Console.WriteLine("The Date is: " + DateObject.Day + " " + DateObject.Month + " " +
                      DateObject.Year);
  }
}

输出:

The Date is: 4 6 2020

如果我们将 CultureInfo 更改为 nl-NL,则将交换月份和日期。

using System;
using System.Globalization;
public class Conversion {
  public static void Main() {
    string CurrentDate = "06/04/2020";
    CultureInfo Culture = new CultureInfo("nl-nl");

    DateTime DateObject = Convert.ToDateTime(CurrentDate, Culture);
    Console.WriteLine("The Date is: " + DateObject.Day + " " + DateObject.Month + " " +
                      DateObject.Year);
  }
}

输出:

The Date is: 6 4 2020

C# 使用 DateTime.Parse() 将字符串转换为 DateTime

DateTime.Parse() 的语法是,

DateTime.Parse(dateTobeConverted);
DateTime.Parse(dateTobeConverted, cultureInfo);

DateTime.Parse() 方法也是如此,如果我们不提供文化信息作为参数,那么默认情况下,我们的系统会将其视为月/日/年。

如果要转换的字符串的值为 null,则它将返回 ArgumentNullException,应使用 try-catch 模块进行处理。

using System;

public class Conversion {
  public static void Main() {
    string CurrentDate = "06/04/2020";

    // Use of DateTime.Parse()
    DateTime DateObject = DateTime.Parse(CurrentDate);
    Console.WriteLine("The Date is: " + DateObject.Day + " " + DateObject.Month + " " +
                      DateObject.Year);
  }
}

输出:

The Date is: 4 6 2020

C# 使用 DateTime.ParseExact()string 转换为 DateTime

DateTime.ParseExact() 的语法是,

DateTime.ParseExact(dateTobeConverted, dateFormat, cultureInfo);

DateTime.ParseExact() 是将字符串转换为 DateTime 的最佳方法。在此方法中,我们将日期的格式作为参数传递。这使用户易于准确执行转换。

在这里,我们通过传递 null 作为参数来代替文化信息,因为它是一个全新的主题,并且需要花费一些时间来理解。

using System;

public class Conversion {
  public static void Main() {
    string CurrentDate = "06/04/2020";

    // Use of DateTime.ParseExact()
    //  culture information is null here
    DateTime DateObject = DateTime.ParseExact(CurrentDate, "dd/MM/yyyy", null);
    Console.WriteLine("The Date is: " + DateObject.Day + " " + DateObject.Month + " " +
                      DateObject.Year);
  }
}

输出:

The Date is: 6 4 2020

结论

有许多方法可以在 C# 中将字符串转换为 DateTime。将字符串转换为 DateTime 的最佳方法是 DateTime.ParseExact()

相关文章 - Csharp String

相关文章 - Csharp Datetime