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