2013-01-16 118 views
1

轉換日期時間問題在轉換日期時間C#

var date = DateTime.Now; 
txtdate.Text = date.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture); 

當我面臨的一個問題,我//需要在以後通過它來作爲一個DateTime變量。當我重新轉換,給我一個錯誤)

DateTime dtReconvert =Convert.toDateTime(txtdate.Text); //Error String was not recognized as a valid DateTim 

當我設置日期時間,以類似「2013年1月1日」 並將其轉換爲日期時間也沒有給我任何錯誤。

+1

http://stackoverflow.com/questions/11009655/convert-datetime-throws-error-string-was-not-recognized-as-a-valid-datetime-for –

+0

我只是好奇!爲什麼不在整個代碼中使用DateTime對象,而不是將DT轉換爲字符串呢?這需要什麼? – CRoshanLG

回答

8

使用DateTime.ParseExact與格式"dd/MM/yyyy"

DateTime dtObject = DateTime.ParseExact(txtdate.Text, 
             "dd/MM/yyyy", 
             CultureInfo.InvariantCulture); 
+1

爲什麼你可以詳細說明如何將日期轉換爲「01/01/2012」這樣的日期,並且當你喜歡「23/01/2012」時,我會告訴我所發佈的內容。否則謝謝 – user1884709

+2

@ user1884709,可能是因爲你現在的文化支持'MM/dd/yyyy''樣式日期,因爲'01/01/2014'可以在2012年1月1日,它會被解析。一種自定義的格式,與當前的文化不同,這就是爲什麼你不能解析它回到日期時間對象。你必須使用自定義格式 – Habib

1

試試這個

DateTime.ParseExact(txtdate.Text, "MM/dd/yyyy", System.Globalization.CultureInfo.InvariantCulture) 

Convert.ToDateTime(txtdate.Text, CultureInfo.InvariantCulture) 

微軟已經採用MM/DD/YYYY作爲一種文化無關的格式,它是一種模棱兩可的格式,這不是我想建立一個拉格朗日的東西電子系統。