Data e Hora
📋 Visão Geral
Trabalhar com datas e horas em ABAP envolve tipos específicos (d, t, timestamp, tz) e utilitários para conversão, formatação e timezone.
Tipos Comuns
d(DATE) — formato interno YYYYMMDDt(TIME) — formato HHMMSStimestamp— geralmentepoustringdependendo da versão; usecl_abap_tstmptzoffset/ timezone handling com classes (ex:cl_abap_tstmp,cl_abap_tstmp_util)
Conversões
DATA(lv_date) = sy-datum. " hoje
DATA(lv_time) = sy-uzeit. " agora
" String -> Date
DATA(lv_date_from_str) = |20251105|.
" Date -> YYYY-MM-DD
DATA(lv_formatted) = |{ lv_date(4) }-{ lv_date+4(2) }-{ lv_date+6(2) }|.
Timezones
Use classes de timestamp para converter:
DATA(lv_tstmp) = cl_abap_tstmp=>get_current( ).
" Converter para timezone específica
DATA(lv_utc) = cl_abap_tstmp=>to_utc( iv_tstmp = lv_tstmp ).
Formatação amigável
- Use templates para formatar
- Use
CONVERT TIME STAMPpara conversões clássicas em sistemas legados
DATA(lv_t) = sy-uzeit.
DATA(lv_hh) = lv_t(2).
DATA(lv_mm) = lv_t+2(2).
DATA(lv_ss) = lv_t+4(2).
WRITE: / |{ lv_hh }:{ lv_mm }:{ lv_ss }|.
Boas Práticas
- Armazene datas no formato nativo (
d) na base de dados. - Não confie no relógio do cliente para autorizações/validações críticas; use
sy-datum/sy-uzeitou services centrais. - Ao exibir, converta para timezone do usuário.
Próximos Passos
3_conversoes.md— conversões tipo a tipo
Tags: #date #time #timezone