🧠 Explicação
O comando EXEC CICS FORMATTIME
converte uma data/hora absoluta (ABSTIME), retornada geralmente pelo EXEC CICS ASKTIME
, em diversos formatos legíveis e utilizáveis. Ele permite extrair partes da data (dia, mês, ano, etc.), gerar carimbos de data/hora (timestamp), ou retornar a data/hora em formatos específicos como DD/MM/AAAA
, RFC1123
, RFC3339
, entre outros.
🔧 Usos mais comuns
-
Obter a data e hora atual formatada para exibição ou comparação.
-
Gerar timestamp padrão internacional (RFC1123 ou RFC3339).
-
Extrair apenas partes da data: dia, mês, ano, dia da semana, etc.
-
Calcular o número de dias desde 1900 (útil para controle de tempo).
-
Gerar datas legíveis com separadores personalizados.
🧾 Sintaxe básica
EXEC CICS FORMATTIME
ABSTIME(variavel-tempo)
[ DATE(data-formatada) ]
[ TIME(hora-formatada) ]
[ DATESEP(separador-data) ]
[ TIMESEP(separador-hora) ]
[ DATESTRING(timestamp) ]
[ STRINGFORMAT(RFC1123 | RFC3339) ]
[ STRINGZONE(UTC | LOCAL) ]
[ DDMMAAAA(campo) | MMDDAAAA(campo) | ... ]
[ YEAR(campo) DAYCOUNT(campo) DAYOFWEEK(campo) ... ]
END-EXEC.
💻 Exemplo prático
01 UTIME PIC S9(15) COMP-3.
01 DATA-FORM PIC X(10).
01 HORA-FORM PIC X(08).
EXEC CICS ASKTIME
ABSTIME(UTIME)
END-EXEC.
EXEC CICS FORMATTIME
ABSTIME(UTIME)
DATESEP('-')
DDMMAAAA(DATA-FORM)
TIME(HORA-FORM)
TIMESEP(':')
END-EXEC.
📌 Resultado exemplo: DATA-FORM = "06-05-2025", HORA-FORM = "09:15:47"
📌 Regras
-
O valor de
ABSTIME
deve ser obtido pelo comandoASKTIME
. -
Para gerar DATESTRING (timestamp), use obrigatoriamente
STRINGFORMAT
eSTRINGZONE
se desejar ajustar formato e fuso horário. -
O separador de data (
DATESEP
) ou hora (TIMESEP
) é opcional — se omitido, o padrão será/
e:
respectivamente. -
A data/hora fornecida em
DATESTRING
pode ser UTC ou LOCAL, conforme definido emSTRINGZONE
.
💡 Dicas
-
Para gerar timestamps compatíveis com APIs, use:
EXEC CICS FORMATTIME
ABSTIME(UTIME)
DATESTRING(AREA-TIMESTAMP)
STRINGFORMAT(RFC3339)
STRINGZONE(UTC)
END-EXEC.
-
Para comparar datas de forma simplificada, utilize
DAYCOUNT
, que retorna o número de dias desde 01/01/1900. -
Ao obter ABSTIME de dois momentos diferentes, você pode calcular a diferença entre eles e passar ao
FORMATTIME
para obter tempos decorrido, dia da semana, etc.
✅ Conclusão
O EXEC CICS FORMATTIME
é um comando extremamente versátil e indispensável para lidar com formatação de data e hora em aplicações CICS. Ele permite transformar valores técnicos (ABSTIME) em formatos legíveis ou compatíveis com padrões modernos, além de oferecer precisão para cálculos e comparações temporais. Usado corretamente com ASKTIME
, ele é ideal tanto para exibição quanto para lógica de negócio.