Avalados por :

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
  • 14 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

contacto@primeinstitute.com

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

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
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