<div dir="ltr"><div dir="ltr">On Thu, 30 Sept 2021 at 10:10, Stephen Colebourne via tz <<a href="mailto:tz@iana.org">tz@iana.org</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Thu, 30 Sept 2021 at 09:42, Jürgen Appel via tz <<a href="mailto:tz@iana.org" target="_blank">tz@iana.org</a>> wrote:<br>
> a) Although possibly a boundary case, I'd like to add that when using location<br>
> based identifiers, for past or future times, a unique conversion from local<br>
> time to UTC is sometimes impossible:<br>
><br>
> 2020-10-25 02:30:00 Europe/Copenhagen cannot be mapped unambiguously to UTC,<br>
> whereas the reverse mapping works of course. I am not aware of any software<br>
> that takes this into account.<br>
<br>
FYI, java.time.* and Joda-Time provide explicit tools for developers<br>
to manage gaps and overlaps on the local timeline.<br></blockquote><div><br></div><div>Ditto <a href="https://nodatime.org">Noda Time</a>, the library for .NET</div><div><br></div><div>The .NET standard library provides tools to <i>check</i> for gaps and overlaps, but isn't quite as insistent on the user being aware of the possibility as Noda Time is.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
> Therefore a reasonable requirement from the downstream user side would be to<br>
> convey information about such conditions ('invalid time' , 'ambiguous time',<br>
> evtl. also 'unconfirmed tzdata' for times not covered in the database)<br>
<br>
>From my perspective as a software library author, handling of these<br>
two use cases belong at the downstream library/consumer level, not at<br>
the TZDB level.<br></blockquote><div><br></div><div>Indeed - the required data for invalid/ambiguous time is already available in the database; it just needs to be presented appropriately. The "unconfirmed tzdata" is slightly trickier, and I'm not sure what most libraries do about that.</div><div><br></div><div>Jon </div></div></div>