C# 將字串轉換為日期時間

  1. C# 使用 Convert.ToDateTime()string 轉換為 DateTime
  2. C# 使用 DateTime.Parse()string 轉換為 DateTime
  3. C# 使用 DateTime.ParseExact()string 轉換為 DateTime
  4. 結論

在大多數情況下,我們以字串形式獲取日期,並且希望分別使用日,月和年。不用擔心,在 C# 中,為了將字串轉換為 DateTime 物件,我們使用了一個名為 DateTime 的預定義類。

有幾種在 C# 中將字串轉換為 DateTime 的方法,但是在這裡,我們僅通過執行示例詳細說明三種方法。這些方法是 Convert.ToDateTime()DateTime.Parse()DateTime.ParseExact()

C# 使用 Convert.ToDateTime()string 轉換為 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()string 轉換為 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

  • C# 中將整形 Int 轉換為字串 String
  • 相關文章 - Csharp Datetime

  • 如何在 C# 中將字串轉換為整型 Int
  • C# 將字串轉換為列舉型別
  • comments powered by Disqus