當我改變系統日期格式dd/mm/yyyy
,Web應用程序拋出的格式錯誤,這裏連接錯誤,日期時間解析拋出格式異常錯誤
如果系統有默認的日期格式,其工作正常。我試圖格式化字符串,但它也沒有工作。請幫我解決問題。
EDITED
這裏是代碼提高例外
cmd.Parameters.Add("@createdon", SqlDbType.DateTime).Value = DateTime.Parse(createdon);
當我改變系統日期格式dd/mm/yyyy
,Web應用程序拋出的格式錯誤,這裏連接錯誤,日期時間解析拋出格式異常錯誤
如果系統有默認的日期格式,其工作正常。我試圖格式化字符串,但它也沒有工作。請幫我解決問題。
EDITED
這裏是代碼提高例外
cmd.Parameters.Add("@createdon", SqlDbType.DateTime).Value = DateTime.Parse(createdon);
當使用DateTime.Parse()
,如果你想使用除程序下運行的文化以外的格式解析日期,您需要指定一個IFormatProvider作爲第二個參數來指定您期望的傳入日期格式。
例子:
cmd.Parameters.Add("@createdon", SqlDbType.DateTime).Value
= DateTime.Parse(createdon, new CultureInfo("en-US", true));
這將解析日期在dd/MM/yyyy
格式,爲美國的默認格式。
也值得注意的是,如果你有一個嚴格的格式要遵守 – Lummo
@ V4Vendetta,那麼你可以使用DateTime.ParseExact,我在一般的理解,而不是特定於.NET的格式字符串。但好點,我修好了。 – richardtallent
我已將代碼修改爲「DateTime.ParseExact(createdon,」d「,new CultureInfo(」en-US「,true));」但現在出現錯誤「作業註冊錯誤:日曆System.Globalization.GregorianCalendar中不支持該字符串表示的DateTime。」 –
通過糾正代碼解決了問題,
cmd.Parameters.Add("@createdon", SqlDbType.DateTime).Value = DateTime.ParseExact(createdon, "MM/dd/yyyy", CultureInfo.InvariantCulture);
所以其工作的任何系統日期時間設置,謝謝大家。
更好的郵政編碼,避免放圖像。順便說一句'''表示幾分鐘而不是幾個月。 'MM'用了幾個月。使用'TryParseExact'而不是解析,因爲它是特定文化的 – wudzik
您可以請發佈導致異常的行嗎? – shahkalpesh
代碼中沒有錯誤,存在文化問題,請嘗試使用指定格式爲「dd/MM/yyyy」的'TryParseExact' http://msdn.microsoft.com/en-us/library/h9b85w22.aspx – wudzik