[NEWSboard IBMi Forum]

Thema: TimeZone

  1. #1
    Registriert seit
    Aug 2001
    Beiträge
    309

    TimeZone

    Hallo *all

    wir haben hier bei uns Zeit intensive Job's, welche jetzt auch für unsere externen Firmen im Ausland benötigt werden!

    Ist es möglich, bei bestimmten Usern z.B im Userprofile oder vielleicht auch in einem CL, etc. eine bestimmte Zeitzone zu hinterlegen?

    Beispiel:
    Job läuft für Deutschland um 01:30 (Systemzeit) => Zeit/Datum ist ok
    Job läuft für Kanada um 01:30 (Systemzeit) => Zeit/Datum ist dort ja noch der vorhergehende Tag bzw. 5 o. mehr Stunden zurück
    Job läuft USA um 01:30 (Systemzeit) => Zeit/Datum ist dort ja noch der vorhergehende Tag bzw. 5 o. mehr Stunden zurück

  2. #2
    Registriert seit
    Apr 2008
    Beiträge
    72
    Nur als Tipp: Eine Zeitzone kannst du beim Usrprofil in der Locale unterbringen.
    Wie genau? ...keine Ahnung...

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Dies ist zwar korrekt, hat aber keine Auswirkung auf die Steuerungswerte QTIME und QDATE oder die RPG-Funktionen TIME, %DATE und %TIME.

    Hintergrund ist, dass durch die Locale eine ENVVAR "TIMZON" gesetzt wird.
    Nur die C-Funktion localtime() liefert dann eine Zeitzonenzeit.
    Genau ist das eigentlich:
    long time() <= Liefert die GMT in Sekunden seit 1.1.1970, das ist QTIME um QUTCOFFSET verändert.
    struct tm* localtime(time()) liefert dann die lokale Zeit entsprechend der ENVVAR TIMZON bzw. wenn diese fehlt wird QUTCOFFSET verwendet.

    Leider ist tatsächlich nur die C-Umgebung Zeitzonensicher.

    Alle Standardprogramme oder das DDS-Schlüsswort TIME liefern nur die Systemzeit.

    Dein Problem kannst du also mit Standardmitteln nicht lösen.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  4. #4
    Registriert seit
    Aug 2001
    Beiträge
    309
    Standardmitteln gehen nicht :-( ?!?!?

    Welche anderen Möglichkeiten gibt's denn dann?

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Hab ich das nicht beschrieben ?

    C-Funktionen !
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  6. #6
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    SQL sollte diese Informationen auch liefern (basiert ja auf C .

    Es gibt eine special register CURRENT_TIMEZONE, mit dem die Zeitzone (als Abweichung Stunden zur UTC=Greenwich Time) ermittelt werden kann.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Stimmt, allerdings muss man diesen Wert von Current Time dann subtrahieren:

    current time - int(CURRENT_TIMEZONE / 10000) hours

    Wenn es denn glatte Stunden sind.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  8. #8
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Stimmt, allerdings muss man diesen Wert von Current Time dann subtrahieren:

    current time - int(CURRENT_TIMEZONE / 10000) hours

    Wenn es denn glatte Stunden sind.
    ... wenn Du die UTC errechnen willst reicht es allerdings die Current_Timezone von der Current_Time abzuziehen.

    Current_Time - Current_timezone

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Aber:

    CURRENT TIMEZONE
    CURRENT_TIMEZONE
    A duration of time that links local time to Universal Time Coordinated (UTC) using the formula: local time - CURRENT TIMEZONE = UTCIt is taken from the system value QUTCOFFSET.

    Eine User-lokale Zeit hat man damit immer noch nicht.
    Hier hilft doch wieder nur eine C-Funktion mit einer Job-ENVVAR: TZ.


    Siehe auch:
    TZ Variable - The GNU C Library
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •