Ah, thanks Kip. Ordinal also has both extended and basic forms too.

Here is another question: if we are going to parse ordinals by default, how
am I going to format to the ordinal format? Use strftime exclusively?

The other annoyance is while an extended ordinal is distinct enough from a
regular extended DateTime, the distinction between basic ordinal and basic
DateTime is a single character: “2020012134523”. There will also be
ambiguity if we ever decide to support more than four digits on the year.
This is enough to say that:

* it is not possible to parse all formats within a single function without
additional user instructions

* if the basic format supports both regular and ordinal, there can be
ambiguity if 5 year digits are ever supported in the future

This is enough information to me that ordinal should be its own thing, with
possibly basic_ordinal and extended_ordinal, but at this point I wonder why
add it to the stdlib.

On Thu, Feb 4, 2021 at 23:50 Kip Cole <[email protected]> wrote:

> From ISO 8601-1:2019(E):
>
> 5.2.3 Ordinal date
>
>
> 5.2.3.1 Complete representations
>
> A complete representation of an ordinal date shall be as follows.
>
> a) Basic format: [year][dayo] EXAMPLE 1 1985102
>
> b) Extended format: [year][“-”][dayo] EXAMPLE 2 1985-102
>
> If by agreement, expanded representations are used, the formats shall be
> as specified below. The interchange parties shall agree on the additional
> number of digits in the time scale component year.
>
> 5.2.3.2 Expanded representations
>
> In the examples below it has been agreed to expand the time scale
> component year with two digits.
>
> a) Basic format: [±][year(6)][dayo] EXAMPLE 1 +001985102
>
> b) Extended format: [±][year(6)][“-”][dayo] EXAMPLE 2 +001985-102
>
> On 5 Feb 2021, at 6:45 am, José Valim <[email protected]> wrote:
>
>
>
>> I like José's suggesting of supporting a flag, but it gets kind of
>> complicated as there are several dimensions here even in our reduced case.
>> Dates, times, and datetimes support either basic or extended notations;
>> dates and datetimes support calendar dates or ordinal dates; both are
>> applicable to any parsing.
>>
>
> Are we 100% sure that ordinal datetimes are part of ISO8601? Kip, can you
> please confirm?
>
>
>> If we went with this approach I'd lean towards always accepting either
>> form for one of the dimensions, and using flags to the sigil and parsing
>> functions to indicate intent for the other.
>>
>
> I am not necessarily worried about sigils because sigils are always
> compile-time literals. It is probably fine to enforce a given format there
> rather than multiple ones.
>
>
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "elixir-lang-core" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/elixir-lang-core/CcXpeMQhsmU/unsubscribe
> .
> To unsubscribe from this group and all its topics, send an email to
> [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4JNeGkCNW_6ic2XkxTkFV3uyMT%2B3EZYJuguhzzZfpOnpQ%40mail.gmail.com
> <https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4JNeGkCNW_6ic2XkxTkFV3uyMT%2B3EZYJuguhzzZfpOnpQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "elixir-lang-core" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/elixir-lang-core/15198E56-9D02-4A0E-8E6D-AB905531112A%40gmail.com
> <https://groups.google.com/d/msgid/elixir-lang-core/15198E56-9D02-4A0E-8E6D-AB905531112A%40gmail.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"elixir-lang-core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4KSXpYWPU-gX53HVGr1efSKbzK-A2bznW7KGG9LmezSGA%40mail.gmail.com.

Reply via email to