2010-11-04 55 views
0
string Edate = collection["effectiveDatePicker"].ToString(); 
string Cdate = collection["cancelDatePicker"].ToString(); 

我得到的日期,以日期時間20101112或20101116轉換字符串使用asp.net

然後我doign soemthign像這樣assing我的日期時間變量

h.Edate= DateTime.ParseExact(collection["effectiveDatePicker"].ToString(), "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture, DateTimeStyles.NoCurrentDateDefault); 
         h.CDate= DateTime.ParseExact(collection["cancelDatePicker"].ToString(), "yyyyMMdd", System.Globalization.CultureInfo.CurrentCult 

保存到後數據庫..我看到EDate和CDate fileds像這樣somethign

11/10/2010 
11/15/2010 

具有相同的日期當我再次提交我越來越錯誤的ParseExact因爲我得到的字符串是2010年11月10日,但它期待20101010

任何機構可以幫助我嗎?

回答

1

我可以肯定地告訴你,有一個重新格式化問題。我不完全理解你的代碼和它需要的步驟(我猜你正在使用數據綁定或類似的東西)。

這一點似乎是日期最初設置爲yyyyMMdd,但是當你回發ToString()運算符應用於這些日期,將它們轉換爲您的操作系統的本機格式MM/dd/yyyy。

您必須強制將它們再次轉換爲yyyyMMdd,因爲默認情況下,ToString將使用對您不利的CurrentUICulture。

你應該向我們展示了更新代碼

0

我不知道你的具體問題是什麼。由於您使用的是DateTime.ParseExact(),並且指定了'yyyyMMdd'的格式,因此傳入諸如'11/04/2010'之類的字符串將會失敗。

2

您可以指定日期的到來在爲這樣的格式:

string Edate = collection["effectiveDatePicker"].ToString("yyyyMMdd"); 
string Cdate = collection["cancelDatePicker"].ToString("yyyyMMdd"); 

這應確保您使用的字符串,看起來像你想要的工作。

+0

如果我使用這行代碼,我得到錯誤System.Iformateprovider這個行..謝謝 – kumar 2010-11-04 19:38:55

+0

如何聲明集合?在調用ToString()之前,您可能需要先將集合[「effectiveDatePicker」]作爲日期對象進行投射。 – GendoIkari 2010-11-04 19:40:29

+0

集合是FormCollection謝謝 – kumar 2010-11-04 19:48:17