odata icon indicating copy to clipboard operation
odata copied to clipboard

Query format of datetimeoffset with fractionalSeconds

Open mexavier opened this issue 4 years ago • 2 comments

Hi,

I'm using OData SDL for few months and I have a question relating on how to format of the datetimeoffset in a query.

According to the BNF, it is written : dateTimeOffsetValue = year "-" month "-" day "T" hour ":" minute [ ":" second [ "." fractionalSeconds ] ] ( "Z" / sign hour ":" minute )

I try to query with the following format :

  • 2020-06-16T10:46:49.392%2B02:00
  • 2020-06-16T10:46:49%2E392%2B02:00

But I always get the following exception :

2020-06-16 15:53:45 [cher-531]                       ERROR ODataRendererActor$$anonfun$receive$1:52 - Invalid request - com.sdl.odata.api.parser.ODataUriParseException: ''&' expected but 'T' found'
com.sdl.odata.api.parser.ODataUriParseException: '&' expected but 'T' found
        at com.sdl.odata.parser.ODataUriParser.parseUri(ODataUriParser.scala:34)
        at com.sdl.odata.parser.ODataParserImpl.parseUri(ODataParserImpl.java:37)
        at com.sdl.odata.service.actor.ODataParserActor$$anonfun$receive$1.applyOrElse(ODataParserActor.scala:34)
        at akka.actor.Actor.aroundReceive(Actor.scala:517)
        at akka.actor.Actor.aroundReceive$(Actor.scala:515)
        at com.sdl.odata.service.actor.ODataParserActor.aroundReceive(ODataParserActor.scala:27)
        at akka.actor.ActorCell.receiveMessage(ActorCell.scala:592)
        at akka.actor.ActorCell.invoke(ActorCell.scala:561)
        at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:258)
        at akka.dispatch.Mailbox.run(Mailbox.scala:225)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

Can you tell me if it is possible to query with fractional seconds and if so, how ?

Thank you

Xavier

mexavier avatar Jun 16 '20 13:06 mexavier

I would try to put just a sign instead of encoded '-', for instance you have to use 2020-06-16T10:46:49.392-02:00

alebastrov avatar Jun 16 '20 14:06 alebastrov

I try the following pattern unsuccessfully :

  • 2020-06-16T10:46:49.392-02:00
  • 2020-06-16T10:46:49.392Z
  • 2020-06-16T10:46:49.392+02:00

mexavier avatar Jun 16 '20 15:06 mexavier