Convertir horodatage GMT
Citation de Khristian le 9 octobre 2023, 11 h 18 minBonjour
(sur un iSeries en V7R3M0 )
comment convertir un horodatage GMT du style "29.09.2023 07:29:19" en un horodatage "Français" ?
sachant que le fuseau horaire n'a pas le même décalage en fonction de l'heure d'été ou d'hiver.Merci de votre participation
Bonjour
(sur un iSeries en V7R3M0 )
comment convertir un horodatage GMT du style "29.09.2023 07:29:19" en un horodatage "Français" ?
sachant que le fuseau horaire n'a pas le même décalage en fonction de l'heure d'été ou d'hiver.
Merci de votre participation
Citation de vazymimil le 25 octobre 2023, 17 h 35 minBonjour,
si vous n'avez pas trouvé de solution vous pouvez vous utiliser l'API QWCCVTDT, par exemple :
**free
ctl-opt dftactgrp(*no) actgrp(*new);dcl-pr QWCCVTDT extpgm('QWCCVTDT');
input_format char(10) const;
input_variable char(20) const;
output_format char(10) const;
output_variable char(20);
error_code int(10) const;input_time_zone char(10) const;
output_time_zone char(10) const;
timezone_info char(200);
lengh_of_timezone_info int(10) const;
precision_indicator char(1) const;
end-pr;dcl-s ts timestamp;
dcl-s utc timestamp;
dcl-s i int(10);ts = ts_utc_to_job(z'2023-09-29-07.29.19');
utc = z'2023-10-28-20.00.00';
dsply (%char(%date(utc)));
for i = 1 to 10;
ts = ts_utc_to_job(utc);
utc = utc + %hours(1);
endfor;utc = z'2021-03-27-20.00.00';
dsply (%char(%date(utc)));
for i = 1 to 10;
ts = ts_utc_to_job(utc);
utc = utc + %hours(1);
endfor;
*inlr = *on;dcl-proc ts_utc_to_job;
dcl-pi *n timestamp;
utcts timestamp value;
end-pi;dcl-s locts timestamp;
dcl-s utcc char(20);
dcl-s locc like(utcc);
dcl-s tzi char(200);utcc = %char(utcts:*iso0);
QWCCVTDT('*YYMD':utcc:'*YYMD':locc:0:'*UTC':'*JOB':tzi:%size(tzi):'1');
locts = %timestamp(locc:*iso0);
dsply ('UTC ' + %char(%time(utcts)) + ' = LOC ' + %char(%time(locts)));return locts;
end-proc;
Bonjour,
si vous n'avez pas trouvé de solution vous pouvez vous utiliser l'API QWCCVTDT, par exemple :
**free
ctl-opt dftactgrp(*no) actgrp(*new);dcl-pr QWCCVTDT extpgm('QWCCVTDT');
input_format char(10) const;
input_variable char(20) const;
output_format char(10) const;
output_variable char(20);
error_code int(10) const;input_time_zone char(10) const;
output_time_zone char(10) const;
timezone_info char(200);
lengh_of_timezone_info int(10) const;
precision_indicator char(1) const;
end-pr;dcl-s ts timestamp;
dcl-s utc timestamp;
dcl-s i int(10);ts = ts_utc_to_job(z'2023-09-29-07.29.19');
utc = z'2023-10-28-20.00.00';
dsply (%char(%date(utc)));
for i = 1 to 10;
ts = ts_utc_to_job(utc);
utc = utc + %hours(1);
endfor;utc = z'2021-03-27-20.00.00';
dsply (%char(%date(utc)));
for i = 1 to 10;
ts = ts_utc_to_job(utc);
utc = utc + %hours(1);
endfor;
*inlr = *on;dcl-proc ts_utc_to_job;
dcl-pi *n timestamp;
utcts timestamp value;
end-pi;dcl-s locts timestamp;
dcl-s utcc char(20);
dcl-s locc like(utcc);
dcl-s tzi char(200);utcc = %char(utcts:*iso0);
QWCCVTDT('*YYMD':utcc:'*YYMD':locc:0:'*UTC':'*JOB':tzi:%size(tzi):'1');
locts = %timestamp(locc:*iso0);
dsply ('UTC ' + %char(%time(utcts)) + ' = LOC ' + %char(%time(locts)));return locts;
end-proc;
Citation de Khristian le 26 octobre 2023, 15 h 14 minBonjour,
je vais regarder cet API..
Merci
Bonjour,
je vais regarder cet API..
Merci
Citation de remit le 27 octobre 2023, 21 h 06 minOn peut aussi utiliser la valeur système QUTCOFFSET qui contient l'écart avec l'heure GMT .
Le format est alphanumérique sur 5 positions : la 1ère position est le signe (+ ou -) ; les 4 dernières positions sont l'écart en HHmm.
Par exemple aujourd'hui sur notre système DSPSYSVAL QUTCOFFSET :
On peut aussi utiliser la valeur système QUTCOFFSET qui contient l'écart avec l'heure GMT .
Le format est alphanumérique sur 5 positions : la 1ère position est le signe (+ ou -) ; les 4 dernières positions sont l'écart en HHmm.
Par exemple aujourd'hui sur notre système DSPSYSVAL QUTCOFFSET :
Fichiers téléversés :
Citation de jma le 28 octobre 2023, 8 h 02 minBonjour,
Ou avec SQL
exec sql
SET :wgmt =
CURRENT TIMESTAMP - CURRENT TIMEZONE;Jean
Bonjour,
Ou avec SQL
exec sql
SET :wgmt =
CURRENT TIMESTAMP - CURRENT TIMEZONE;
Jean
Citation de Khristian le 29 octobre 2023, 14 h 03 minBonjour et merci pour vos réponses.
en fait mon besoin bien "spécifique" n'est pas en temps réel.
c'est à dire que l'horodatage UTC que j'ai a traité ( pour le comparer à un horodatage français ) est dans le passé
et sur le système il n'y a que la valeur QUTCOFFSET du moment présent !merci de votre participation
Bonjour et merci pour vos réponses.
en fait mon besoin bien "spécifique" n'est pas en temps réel.
c'est à dire que l'horodatage UTC que j'ai a traité ( pour le comparer à un horodatage français ) est dans le passé
et sur le système il n'y a que la valeur QUTCOFFSET du moment présent !
merci de votre participation