簡體   English   中英

將日期字符串轉換為日期時間

[英]convert date string to datetime

我使用dd-MMM-yyyy格式的日期字符串,並想將其轉換為datetime ,當我使用以下代碼時

DateTime.ParseExact("20-Oct-2012", "yyyy-MM-dd HH:mm tt", null) 

它導致錯誤

無法將字符串識別為有效的DateTime。

當我修改上面的代碼

DateTime.ParseExact("20-Oct-2012", "dd-MMM-yyyy", null) 

然后我得到日期時間的格式( mm/dd/yyyy ): 10/20/2012 12:00:00 AM

但我需要將其轉換為yyyy/mm/dd格式。 請在這方面幫助我。

你應該試試這個

DateTime.ParseExact("20-Oct-2012", "dd-MMM-yyyy", null).ToString("yyyy/mm/dd")

有關格式的更多信息, 請檢查此

您需要區分兩個獨立的關注點:將原始字符串解析為抽象的DateTime表示,以及將后者轉換回另一個字符串表示。

在您的代碼中,您只需處理前者,並依靠隱式ToString()方法調用(使用系統的當前語言環境)將其轉換回字符串。 如果要控制輸出格式,則需要明確指定它:

// Convert from string in "dd-MMM-yyyy" format to DateTime.
DateTime dt = DateTime.ParseExact("20-Oct-2012", "dd-MMM-yyyy", null);

// Convert from DateTime to string in "yyyy/MM/dd" format.
string str = dt.ToString("yyyy/MM/dd");

另請注意, mm格式說明符表示分鍾; 月份以MM表示。

編輯 :“轉換后的日期包含值“ 2012年10月20日12:00:00”。” 請注意您的意思。 構造的DateTime值包含解析后的日期和時間的抽象表示形式,該表示形式獨立於任何格式。

但是,為了顯示它,您需要將其轉換回一些字符串表示形式。 當您在調試器中查看變量時(大概正在做),Visual Studio會自動在DateTime上調用無參數的ToString()方法,該方法將在當前區域性下呈現日期和時間(在您的情況下,假定日期和時間為美國文化)。

如上例所示,要更改此行為,使其以自定義格式呈現日期和時間,您需要顯式調用ToString(string)重載(或其他重載之一)。

您可以嘗試以下方法:

Convert.ToDateTime("20-Oct-2012").ToString("yyyy/MM/dd")

希望這會有所幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM