Sql xml datetime fuseau horaire

cudenetf Messages postés 448 Date d'inscription mardi 20 septembre 2005 Statut Membre Dernière intervention 26 juillet 2012 - 20 juin 2012 à 13:45
Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 - 20 juin 2012 à 20:38
Bonjour,
j'ai un souci d'export et d'import avec c# avec les dates dans les fichiers xml.
j'exporte une table sql avec des dates sous format xml sur une cle usb
ensuite sur un autre ordinateur je charge dans une base sql les données du fichier xml
dont ces dates.
Le souci est que si les deux ordis ne sont pas reglés sur le meme fuseau horaire , mes dates ne sont pas les memes des deux cotes.
Quand on ouvre le fichier xml on voit clairement le fuseau horaire ecrit (ex:+4)
si je charge le fichier sur un ordinateur ou le fuseau est +3 , je me retrouve complement decalé d'une heure
concretement : je met que la partie date ex: 19/06/2012 00:00
arrivé sur l'autre ordinateur , la date est 18/06/2012 23:00
...

comment faire pour eviter que le fuseau horaire soit pris en compte svp ??

4 réponses

Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 656
20 juin 2012 à 14:11
Bonjour

quand j'exporte un DateTime vers un fichier xml, j'obtiens ce format: 2012-06-11T07:30:00.
Il n'y a pas le fuseau horaire.
Peux tu mettre ton code d'export?



Whismeril
0
cudenetf Messages postés 448 Date d'inscription mardi 20 septembre 2005 Statut Membre Dernière intervention 26 juillet 2012 2
20 juin 2012 à 14:23
pour ecrire :
cadencierDataSet1.livraison.WriteXml(lec_textBox1.Text + ":\\bl.xml");

ce qui genere le fichier xml suivant :

<?xml version="1.0" standalone="yes"?>
<cadencierDataSet xmlns="http://tempuri.org/cadencierDataSet.xsd">
<livraison>
<liv_id>22228888</liv_id>
<liv_dat>2012-06-20T00:00:00+04:00</liv_dat>
<liv_cli>3</liv_cli>
<liv_livreur>1</liv_livreur>
</livraison>
</cadencierDataSet>

pour lire le fichier xml :
ds_bl.ReadXml(lec_textBox1.Text + ":\" + "bl.xml");

j'aimerais bien enlever ce +4 ou faire en sorte que le programme n'en tienne pas compte
0
Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 656
20 juin 2012 à 19:23
Bon je ne me sers jamais de dataset et encore moins de sql,
alors ce qui me vient à l'esprit n'est peut-être pas très intelligent.

Est il possible que la base sql formate le datetime dans le dataset en heure utc? Au moment de l'export ça apparaitrait par le biais du fuseau? Peux tu voir pendant l'exécution à quel fuseau sont les dates? Dans ce cas il faudrait peut être une boucle pour forcer chaque datetime à l'heure locale.

Sinon je vois bien une bidouille pour t'en affranchir, mais ça n'est pas "propre".
Après l'export ou avant l'import tu charges le fichier dans un stream et tu remplaces tous les "+04:00" par des chaines vides, et tu écrases le xml existant...



Whismeril
0
Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 656
20 juin 2012 à 20:38
SI je comprend bien cette page, le datetimeoffset est un format sql. Je pense donc qu'il faut chercher du coté de la base.



Whismeril
0
Rejoignez-nous