2013-08-07 71 views
0

應用程序在系統日期格式,顯示格式或T-SQL語句中存在日期問題是很常見的。目前我正在開始新項目並尋找處理日期的標準解決方案。管理日期時間問題

有時候可能會出現這樣的情況,客戶想要在應用程序級別更改所有日期的顯示格式。我想以最小的努力處理這些事情,而不會干擾整個項目代碼。

請建議我來處理使用.NET Framework 4.0在C#中的日期與所有的系統日期格式

+0

我會建議使用一個好的ORM(對象關係映射)解決方案,將爲您照顧這個。 – Aphelion

+3

大部分日期格式化問題的出現是因爲數據被保存在字符串中(而不是更合適的數據類型)的時間超過了必要的時間。應儘早從用戶輸入中解析字符串,格式只能在直接在輸出中顯示日期的代碼中執行。 –

+0

@Damien_The_Unbeliever +1,我也會添加只處理UTC。 –

回答

1

有很多方法效果最好的方式,但我會提到的2我更頻繁地使用。

  1. 使用SqlCommand對象並將Date參數作爲DateTime傳遞給db中的日期時間字段。

  2. 使用標準SQL日期格式「yyyy-MM-dd HH:mm:ss.ttt」將日期作爲字符串傳遞給db中的日期時間字段。

希望這會有所幫助。

0

通用日期格式應該是所有的時間,而從應用程序傳遞日期到sql天氣比較sql日期;通用格式的日期套裝並按照日期標準執行。

您可以使用通用日期格式「2013-08-31 10:04:44000」或「20130831」。

而且您還可以創建擴展方法(C#3.0+)並在整個應用程序中使用該方法。

0

您可以將您的日期時間對象轉換爲ISO 8601格式並將其傳遞給SQL Server。

您可以日期時間轉換爲ISO 8601,如下圖所示,並檢查出Standard Datetime format string

myDateTime.ToString("s") 

欲瞭解更多信息,請通過下面的線,顯示瞭如何將其轉換爲ISO 8601格式:

Given a DateTime object, how do I get an ISO 8601 date in string format?

在數據庫中從不將日期時間存儲爲字符串,但only datetimenever format datetime at database level