2013-10-31 77 views
0

我根據從我的數據庫中提取的文化(en-GB)格式化我的日期時間列。我將這些數據導出爲ex​​cel。當我下載我的數據時,某些日期時間顯示爲「2013年10月16日16:34:14」(即24小時),這是正確的,而其他日期時間顯示爲「2013年10月10日下午12時47分01秒「(即12小時),這是錯誤的。對於en-GB,日期時間格式應該是「dd/MM/yyyy HH:mm:ss」。 如何解決這個問題。請告訴我。提前致謝。Excel中的C#日期時間格式問題

下面是我用來將數據導出到Excel的代碼。

GridView gv = new GridView(); 
gv.DataSource = dtTemp; // Here is My data 
gv.DataBind(); 

Response.Clear(); 

// 'set the response mime type for excel 
string fileName = string.Empty; 
fileName = "Online_Topup_Report_" + DateTime.Now.Date.ToString(DayFormat.Value.ToString().Replace("/", "-")).ToString() + ".xls"; 
Response.Buffer = true; 
Response.AddHeader("content-disposition", "attachment;filename=" + fileName + ""); 
Response.ContentType = "application/vnd.ms-excel"; 
Response.ContentEncoding = System.Text.Encoding.Default; 
Response.Charset = "UTF-8"; 
StringWriter stringWrite = new StringWriter(); 
// 'create an htmltextwriter which uses the stringwriter 
System.Web.UI.HtmlTextWriter htmlWrite = new System.Web.UI.HtmlTextWriter(stringWrite); 

// 'tell the datagrid to render itself to our htmltextwriter 
gv.RenderControl(htmlWrite); 
Response.Output.Write(stringWrite.ToString()); 
Response.End(); 
+0

Excel是否在en-GB文化中運行?如果不是,那可能會解釋這種差異。一般來說,最好避免交換格式的文化特定格式,這基本上就是你在做什麼。您可以使用「通用」DateTime格式之一,如「u」,「U」或「R」(請參閱​​http://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110)的.aspx)?請注意,即使原始日期的格式不易讀取,Excel也可以使用您的首選格式顯示它。 – JaredReisinger

+0

沒有我的系統以美國格式運行。無論是在英國還是美國運行都不是問題。我只是根據文化來格式化它。從DB中提取後,我已將datetime格式化爲'dd/MM/yyyy HH:mm:ss',然後將其轉換爲字符串。做完所有這些後,我只會將它導出到Excel。 – Santhosh29

+0

正確... Excel會查看格式化的日期,並嘗試以標準的en-US日期格式(可能是12小時格式)顯示它。在仍然看到en-GB格式的情況下,Excel可能不會將該值識別爲日期,並將其顯示爲文本(這意味着您仍然可以看到en-GB格式)。這就是爲什麼我說你在導出/導入日期時間值時應該避免使用文化特定的格式。 (理想情況下,出於類似的原因,您也避開時區,只使用GMT時間。) – JaredReisinger

回答

0

你應該格式化無論你是從數據庫中獲取到的格式第一日期時間: 「DD/MM/YYYY HH:MM:SS」

,然後你可以將其導出到Excel。

+0

我認爲在你的情況下,格式化的東西出錯了,因此它沒有格式化所有的日期時間。 – Swati

+0

請參閱它可能會幫助你http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx – Swati

+0

是的,從數據庫中提取後,我已格式化該日期時間列爲'dd/MM/yyyy HH :mm:ss',然後將其轉換爲字符串。做完所有這些後,我只會將它導出到Excel。但沒有任何工作。它顯示爲我在第一篇文章中提到的。請指教我....? – Santhosh29