Sql xml datetime fuseau horaire

Signaler
Messages postés
448
Date d'inscription
mardi 20 septembre 2005
Statut
Membre
Dernière intervention
26 juillet 2012
-
Messages postés
16140
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
4 août 2021
-
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

Messages postés
16140
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
4 août 2021
558
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
Messages postés
448
Date d'inscription
mardi 20 septembre 2005
Statut
Membre
Dernière intervention
26 juillet 2012
1
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
Messages postés
16140
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
4 août 2021
558
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
Messages postés
16140
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
4 août 2021
558
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