[英]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.