2010-12-14 5 views
1

J'ai écrit un petit assistant Excel qui fonctionne bien. Il utilise cette chaîne de connexion:OLEDB date (heure) question asp.net C#

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

Malheureusement quand je Déployez le code, les cellules, qui contient une chaîne comme celle-ci: 28/12/2008 sont retournés comme: 12/25/2008 12:00:00 AM plutôt que 25/12/2008 00:00:00après avoir utilisé ToString. J'ai ajusté le fuseau horaire etc. de la machine (toutes les machines sont maintenant des fuseaux horaires du Royaume-Uni) mais ceci n'a rien changé. Je suis simplement curieux de savoir ce qui détermine le comportement d'OLEDB. Le but serait d'obtenir 25/12/2008 00:00:00 sur les deux machines.

Merci!

Christian

Répondre

1

Les machines peuvent avoir besoin d'avoir leurs paramètres locaux ont changé, et pas seulement les paramètres de fuseau horaire. Je crois qu'ils sont séparés.

+0

J'ai changé les options de langue et Reginal au Royaume-Uni. Savez-vous où changer ce dont vous parlez? – cs0815

+0

Si vous avez changé le régional, je pense que cela couvre. Vous pouvez être coincé en formatant vos dates manuellement? http://en.csharp-online.net/CSharp_Format_Specifiers%E2%80%94DateTime_Format_Specifiers – jocull

2

Je pense que cela pourrait être quelque chose à voir avec le Culture étant réglé sur en-us. Vous devrez formater le DateTime en conséquence.

Standard Date and Time format strings

+0

La fonction ToString me donne soit 12/25/2008 12:00:00 AM ou 25/12/2008 00:00:00 en fonction de la machine. Je voudrais synchroniser les machines – cs0815

+0

Utilisez '.ToString (" jj/MM/aaaa HH: mm: ss ")' pour le garder dans le même format, peu importe la machine sur laquelle il est installé. –

+0

Je ne pense pas que la méthode tostring permette des arguments ... – cs0815