¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

¡Acceso SAP S/4HANA desde $100!

Acceso a SAP

Compreensão do Tratamento de Datas e Horários na Fundação do SAP Gateway para Conversões OData

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 64 Vistas
0
Cargando...
Em uma primeira postagem de blog sobre conversões na Fundação SAP Gateway, discutimos sua relevância no contexto das diferenças entre o sistema de tipos ABAP e o sistema de tipos OData. Embora não diretamente relacionado às conversões, o manuseio de datas e horários se encaixa perfeitamente nesse tópico.

O ABAP conhece datas, horários e diferentes representações de carimbos de tempo. E, fornece funções de reutilização para executar cálculos de datas e horários. O OData possui suas próprias definições de datas e horários com funções que podem ser usadas em expressões $filter , por exemplo.

Muitas vezes, surgem perguntas sobre como as diferentes representações se mapeiam e como um provedor de dados precisa ser implementado para criar uma melhor correspondência entre ambos os mundos. Certamente não é possível mergulhar em todos os detalhes. Mas, vamos começar com alguns aspectos.

Data e Hora no OData


Para representar informações de data e hora, a especificação do OData na versão 2.0 conhece os três tipos primitivos

  • Edm.DateTime,

  • Edm.Time e

  • Edm.DateTimeOffset.


Como isso não é realmente suficiente para aplicações comerciais, a especificação da versão 4.0 muda para

  • Edm.Date,

  • Edm.TimeOfDay,

  • Edm.DateTimeOffset e

  • Edm.Duration.


Nos concentramos na especificação da versão 2.0 e restringimos a discussão a Edm.DateTime e Edm.DateTimeOffset. Detalhes sobre as representações podem ser encontrados na especificação do OData , no padrão ISO 8601 e em http://www.w3.org/TR/xmlschema-2 . Aqui, listamos rapidamente os diferentes formatos. Os literais são usados na URI, ou seja, em $filter , por exemplo. ATOM e JSON se referem ao tipo de conteúdo da carga da solicitação ou resposta. O número de casas decimais disponíveis para sub-segundos é definido pela faceta de precisão.

Edm.DateTime representa uma data e uma hora em UTC (anteriormente, Hora Média de Greenwich):
























Representação Exemplo
Literal datetime'yyyy-mm-ddThh:mm[:ss[.fffffff]]' datetime'2016-07-08T12:34:56'
ATOM yyyy-mm-ddThh:mm[:ss[.fffffff]] 2016-07-08T12:34:56
JSON "\/Date(<ticks>)\/"<ticks> = número de milissegundos desde a meia-noite de 1º de janeiro de 1970 "\/Date(1467981296000)\/"

Os ticks na representação JSON também podem ser negativos para descrever datas e horários anteriores a 1º de janeiro de 1970. "\/Date(-6847804800000)\/" é meia-noite de 1º de janeiro de 1753, por exemplo.

Edm.DateTimeOffset adiciona informações de fuso horário em relação ao UTC. As informações de data e hora são complementadas pela diferença padrão de tempo (offset) com o sinal v : +01:00 para Horário da Europa Central (CET) ou -05:00 para Horário Padrão do Leste (EST), por exemplo.
























Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

Sin respuestas

No hay respuestas para mostrar No hay respuestas para mostrar Se el primero en responder

(+51) 1641 9379
(+57) 1489 6964

© 2026 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

Hola ¿Puedo ayudarte?
Representação Exemplo
Literal datetimeoffset'yyyy-mm-ddThh:mm:ss[.fffffff]Z|vii:nn' datetimeoffset'1970-01-01T00:00:01+01:00'
ATOM yyyy-mm-ddThh:mm:ss[.fffffff]Z|vii:nn 1970-01-01T00:00:01+01:00