View Full Version : CYYMMDDHHMMSS umwandeln
Ich muss in RPGLE das obige Format in eine Timestamp umwandeln.
Geht das auch einfacher als daraus ein langes Timestamp zu bauen und dann mit %timestamp umzuwandeln?
%timestamp erwartet ein Char(22) oder aber ein Char(14).
%timestamp(%char(MyCYYMMDDHHMMSS +19000000000000):*iso0)
https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_72/rzasd/bbtmst.htm
Nö, das taugt nix, char(14) akzeptiert er nicht.
Es geht nur so:
eval timestamp =
%date('20' + %subst(bshbegtm:2:6): *iso0)
+ %time(%subst(bshbegtm:8:6): *iso0)
Müßte auch mit *CYMD0 ab Stelle 1, Länge 7 ohne '20'+ gehen.
Wie immer Releaseabhängig, aber dies geht:
%timestamp(%char(MyCYYMMDDHHMMSS +19000000000000)+'000000':*iso0)
Solange du kein Datum vor 2000 hast, kannst du das "C" ja abschneiden. Dies hat aber
0 = 1900, 1=2000, ...