-
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
-
Nur als Tipp: Eine Zeitzone kannst du beim Usrprofil in der Locale unterbringen.
Wie genau? ...keine Ahnung...
-
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.
-
Standardmitteln gehen nicht :-( ?!?!?
Welche anderen Möglichkeiten gibt's denn dann?
-
Hab ich das nicht beschrieben ?
C-Funktionen !
-
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
-
Stimmt, allerdings muss man diesen Wert von Current Time dann subtrahieren:
current time - int(CURRENT_TIMEZONE / 10000) hours
Wenn es denn glatte Stunden sind.
-
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
-
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
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks