2010-12-14 75 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