Hello!
I'm dealing with ISO8601 strings for date times, and the current libraries
make my use case, which is dealing with clock time but preserving the
offset from UTC, very frustrating.
Specifically (unless I'm mistaken) there is no inbuilt functions that allow
reversible parsing of them.
e.g.
Given "2020-09-7T10:59:00+0100" I can parse this into a UTC DateTime and an
offset, or a NaiveDateTime ignoring the offset, but from either of these I
cannot reproduce "2020-09-7T10:59:00+0100".
I understand that an offset is not a timezone, so I understand why by
default it does get converted to UTC, but it does represent the clock time
at a point in time (which is useful for historical time series data like
I'm working with).
What I propose is two options:
1) Have either/both DateTime and/or NaiveDateTime's `to_iso8601/2` expanded
to take an offset back for the point of formatting, e.g.
```
{:ok, utc_dt, offset} = DateTime.from_iso8601("2020-09-7T10:59:00+0100")
"2020-09-7T10:59:00+01:00" = DateTime.to_iso8601(utc_dt, :extended, offset)
```
2) Have NaiveDateTime capture offset into it's struct, and allow it to be
included when formatting date times.
```
{:ok, naive_dt} = NaiveDateTime.from_iso8601("2020-09-7T10:59:00+0100")
"2020-09-7T10:59:00+01:00" = NaiveDateTime.to_iso8601(naive_dt,
:extended_offset)
```
I'd be happy to work on either / both of these, but currently I have to use
DateTime.add and manually edit the struct to get the result I want, and
given that the inbuilt libraries are more than sufficient for all my other
purposes the current iso8601 handling feels like it could be improved
Cheers and look forward to feedback
Jon
--
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/04e5e287-7a5b-45f1-a56c-54137bd14a23n%40googlegroups.com.