PDA

View Full Version : Datumsformatierung



harkne
26-05-14, 08:48
Hallo zusammen,

ich habe ein kleines Problem.
Da unsere Anwendungen auf einem System aber in verschiedenen Ländern laufen, soll das Datum einmal mit "26.05.14" oder in England mit "26/05/14" angezeigt werden.

Wenn ich eine DSPJOB mache, ist auch alles korrekt eingetragen. Hier haben wir als Datumstrennzeichen den "." Ein englischer Benutzer hat "/". Im SDA schaut das im Datum auch richtig aus und funktioniert auch alles.

Mein Problem ist der %editc(Datum:'Y') im RPG. Der scheint sich darum nicht zu kümmern.
Der benutzt immer "/" auch bei uns. Wenn ich jetzt in den H-Bestimmungen angebe, dass er "." verwenden soll ist das natürlich auch nicht korrekt. Er sollte es eigentlich so machen wie in der Bildschirmdatei.

Kann mir da jemand helfen ?

Viele Grüße Harald

Fuerchau
26-05-14, 08:56
Das geht zur Laufzeit leider nicht, da %EDITC zur Compilezeit die Maske generiert.
Hier kannst du nur eine Prozedur schreiben, die das aktuelle Datumsformat des Jobs abfragt und dann unterschiedliche %EDITW's verwendet.
Zusätzlich hast du ja auch noch das Problem der Reihenfolge DD.MM.YY, MM/DD/YY usw. das auch zu berücksichtigen ist.

harkne
26-05-14, 09:14
Hallo Herr Fürchau,

danke für die Info. Die Problematik mit der Reihenfolge stellt sich mir im Moment noch nicht. Die Reihenfolge ist immer DDMMYY da wir England und nicht Amerika haben. Deshalb reicht mir auch das Datumsformat nicht. Aber im ich kann einen RTVJOBA auf DATSEP machen und dann mit EDITW arbeiten.
Vielen Dank
Viele Grüße Harald

AG1965_2
26-05-14, 09:52
Probier's mal mit %CHAR(Datumsfeld:*JOBRUN).

Das nimmt auf die Trennzeichen zur Laufzeit sehr wohl Rücksicht. (Und aufs Datumsformat.)

Fuerchau
26-05-14, 10:19
Dafür muss aber mit %DATE erst mal in ein Datum umgewandelt werden.

camouflage
26-05-14, 11:01
geht doch ganz einfach:

dcl-s indate packed(6:0) inz(260514);
dcl-s outdate char(8);
outDate = %char(%date(inDate:*dmy):*jobrun);

oder:
outDate = %char(%date(inDate:*dmy));

wenn *jobrun in den H-Bestimmungen angegeben wurde.

Datumskonversion siehe auch hier: http://search400.techtarget.com/tip/RPG-free-format-date-conversion-cheat-sheet

Ich würd's auch so machen...