2010-12-14 87 views
1

我寫了一個可以正常工作的小型excel幫手。它使用此連接字符串:OLEDB日期(時間)問題asp.net c#

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=<FILENAME>;Extended Properties=\"Excel 12.0;HDR=Yes;\";"; 

不幸的是,當我部署的代碼,細胞,其中包含一個日期字符串是這樣的:使用的ToString後12/25/2008 12:00:00 AM而不是25/12/2008 00:00:0028/12/2008被返回。我調整了機器的時區等(所有機器現在是英國時區),但這並沒有改變任何東西。我只是好奇什麼決定了OLEDB如何「表現」。目標是在兩臺機器上獲得25/12/2008 00:00:00

謝謝!

基督教

回答

1

機器可能需要有自己的區域設置改變,而不僅僅是時區設置。我相信他們是分開的。

+0

我已經改變了對區域和語言選項來英國。你知道在哪裏改變你所指的? – cs0815 2010-12-14 16:19:27

+0

如果你改變了我認爲涵蓋它的區域。你可能被卡住手動格式化你的日期? http://en.csharp-online.net/CSharp_Format_Specifiers%E2%80%94DateTime_Format_Specifiers – jocull 2010-12-14 17:14:40

2

我認爲這可能是一個做的Culture被設置爲en-us。您需要相應地格式化DateTime

Standard Date and Time format strings

+0

ToString函數爲我提供12/25/2008 12:00:00 AM或25/12/2008 00:00:00,具體取決於機器。我想同步機器 – cs0815 2010-12-14 16:21:22

+0

使用'.ToString(「dd/MM/yyyy HH:mm:ss」)'保持它的格式不管它安裝在什麼機器上。 – 2010-12-14 16:26:23

+0

我不認爲toString方法允許參數... – cs0815 2010-12-14 16:31:50