WebService UTC Zeit - Sommerzeit

14. April 2021 19:40

Hi,

das NAV hat einen WebService veröffentlicht, wenn dieser aufgerufen wird passiert folgende Prüfung:

Code:
IF (("Date next Export" <= WORKDATE) AND ("Time next Export" <= TIME)) THEN BEGIN .....


Allerdings ist TIME, wenn ich es über den WebService aufrufe in UTC Zeit, der Export wird 2 Stunden zu spät ausgeführt.

Dem Webservice könnte ich noch ein Zeit String (DEU Zeit) übergeben, und dann? Ich komm nicht drauf :-(

Die Tage habe ich was aehnliches noch für eine C# App gemacht, um Sommerzeit zu ermitteln, weil da eine sqlite Datenbank hatte die auch UTC Daten speichert, aber ich krieg das nicht in C/AL Code :roll: :oops:

Hat jemand ein Tipp für mich wie ich die Abweichung zum UTC rausfinden kann?

Vielen Dank

Code:
 private static bool SummerTime()
        {
            DateTime dt = DateTime.Now;
            bool Summertime = false;

            //YEar to search/look
            int year = dt.Year;


            DateTime DateM = new DateTime();
            DateTime DateOc = new DateTime();

            DateTime date;
            for (int i = 1; i <= 12; i++)
            {
                date = new DateTime(year, i, DateTime.DaysInMonth(year, i), System.Globalization.CultureInfo.CurrentCulture.Calendar);
               
                int daysOffset = date.DayOfWeek - DayOfWeek.Sunday; // take the offset to subtract directly instead of looping
                if (daysOffset < 0) daysOffset += 7; // if the code is negative, we need to normalize them
                date = date.AddDays(-daysOffset); // now just add the days offset

                if (i == 3)
                {
                    //Last Sunday Sunday in March
                    DateM = date;
                }
                if (i == 10)
                {
                    //Last Sunday Sunday in October
                    DateOc = date;
                }
            }

            if ((dt > DateM) && (dt < DateOc))
                Summertime = true;
            else if (dt > DateOc)
                Summertime = false;
            else if (dt < DateM)
                Summertime = false;

            return Summertime;

        }

Re: WebService UTC Zeit - Sommerzeit

14. April 2021 20:34

Es müsste in der CustomSettings.config Datei eine Einrichtung für die Zeitzonen geben: WebServicesDefaultTimeZone (so hieß es früher) bzw. Services Default Time Zone

Managing Time Zones with Web Services
https://docs.microsoft.com/en-us/dynami ... b-services

Re: WebService UTC Zeit - Sommerzeit

15. April 2021 15:38

Hallo,

danke für die Antwort.

ich darf dann doch in der NAV Instanz (Administration ) die Zeitzone umstellen von UZC auf "Server Time Zone", damit sollte sich das Problem dann erledigen.

Re: WebService UTC Zeit - Sommerzeit

15. April 2021 19:27

Hallo,

ich würde mal statt mit DATE und Time mit DATETIME arbeiten. Das arbeiten intern immer mit UTC.

d.h. wenn du in der Oberfläche in DE 23.59 ME(S)Z eingibst, dann landet in der Datenbank der entsprechende UTC- Wert.

Das kann zwar etwas lustig aussehen, wenn man aus verschiedenen Zeitzonen in die DB- schaut, und er immer andere Zeiten anzeigt. Die Daten sind aber korrekt und zutreffend.

Gruß Fiddi

Re: WebService UTC Zeit - Sommerzeit

27. April 2021 19:34

Danke für den Tipp.