getodk / xforms-spec

The XForms-derived specification used in the ODK ecosystem. If you are interested in building a tool that is compliant with the forms rendered by ODK tools, this is the place to start. ✨⚒✨
https://getodk.github.io/xforms-spec/
30 stars 26 forks source link

finish date() spec #289

Open MartijnR opened 2 years ago

MartijnR commented 2 years ago

The date spec is currently unfinished. It says:

Converts to a string in the ….date format.

I'd like to propose to add a time and local timezone offset (to the ODK spec), i.e. to treat it as a dateTime. This seems to fall within the possibilities of the spec for "date" that we refer to in the ODK spec: https://www.w3.org/TR/xmlschema-2/#date

So date(12345.5) would be turned into e.g. 2003-10-20T08:00:00.000-04:00.

One use case that has come up is:

a. converting a date with decimal-date-time() b. do some stuff with the result of a, e.g. add 1 (day) c. convert back the result of b using date() and get a predicable result (e.g. 1 day later).

MartijnR commented 2 years ago

Considering the current behavior in ODK Collect and the fact that this proposal would output like Enketo's recent behavior in the previous XPath evaluator, I didn't create a forum post. If you prefer to discuss there, I'd be happy to post it there.