Datum/Uhrzeit im XML-Port

28. März 2014 15:41

Wir wollten Daten mit anderen Systemen austauschen und sind dabei auf ein leicht rätselhaftes Verhalten bei DateTime-Feldern gestoßen. Anscheinend gibt es im XML zwei verschiedene Formate. Beide beginnen mit "JJJJ-MM-TT"+T+"HH:MM:SS". Im zweiten Format folgt dahinter noch ein Z. Ich habe jetzt festgestellt, dass die Felder mit dem Z auf GMT, also Normalzeit, umgerechnet wurden, d.h. gegenüber der MEZ werden im Winter eine Stunde und im Sommer 2 Stunden abgezogen.

NAV gibt das zweite Format aus, also die umgerechnete Zeit. Solange dies beim Einlesen in ein anderes System keine Schwierigkeiten macht, ist das für mich ok. Ich weiß allerdings nicht, ob andere Systeme dies richtig interpretieren. Beim Einlesen kann NAV mit beiden Varianten umgehen.

Was mich interessieren würde ist, ob sich das Verhalten von NAV irgendwo einstellen lässt. Hat da jemand eine Idee?

Re: Datum/Uhrzeit im XML-Port

28. März 2014 16:40

Das ist der XML-Standard. Z ist das Kennzeichen für UTC. Intern arbeitet NAV ja auch mit UTC. Ist kein Z vorhanden sollte der Zeitstempel auf die lokale Zeitzone des ausführenden Rechners interpretiert werden. Wie du schon richtig sagst, NAV kann das. Wenn andere Systeme das nicht können, liegt dort wohl ein Fehler vor.

Einstellen läßt sich z.B. im RTC-Umfeld über die config die Darstellung per Web Service. Aber das hat, glaube ich, keinen Einfluß auf einen XML-Port.

Re: Datum/Uhrzeit im XML-Port

31. März 2014 10:27

Wie schon beschrieben, lässt sich das Verhalten in der Config XML des Service einstellen. Dort steht default "UTC" drin. Wird also kein String sondern effektiv ein DateTime ausgegeben, wird immer UTC genutzt. Dies kann umgestellt werden auf "Server Time Zone", was dann die Server Zeitzone nutzt und somit auch Winter und Sommerzeit Umstellungen mitnimmt.

Du musst eigentlich nur gesondert aufpassen, wenn du XML Ports hast, mit den du Daten importierst. Wenn die XML File UTC nutzt, dann solltest du auch UTC eingestellt haben. Die meisten regionalen Systeme nutzten aber meist die eigene Zeitzone und daher wird nach meinem Gefühl mehr auf "Server Time Zone" gearbeitet bis man über eine Zeitzone heraus arbeitet.