I would object to your suggestion on the grounds that, as they stand, Date objects represent exact points in time, with no ambiguities, and in many cases that's exactly what you need. Once you endow them with a timezone offset they cease to represent points in time, but rather more points in space, which adds complexity and liability to any code handling Date objects - similar to how any code expecting integral Numbers has to be prepared for non-integral input.<br><br>It's unfortunate that the boat has sailed on Date, because it's actually a very inappropriate name for what it is. But what I think is really needed is another distinct class for Date+Time components. You would project a Date to its components (incl a tz offset, to avoid ambiguity around DST shifts) for a given timezone, and with those components, answer the kinds of questions you have. No arithmetic should be possible with such a class, short of extracting a Date back from it and working on that.<div><br>On Friday, 5 August 2016, Jordan Harband <<a href="mailto:ljharb@gmail.com">ljharb@gmail.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">This message was in my Gmail spam folder due to "It has a from address in <a href="http://yahoo-inc.com" target="_blank">yahoo-inc.com</a> but has failed <a href="http://yahoo-inc.com" target="_blank">yahoo-inc.com</a>'s required tests for authentication." - so it's possible nobody saw it.<div><br></div><div>Replying all to bump.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jul 29, 2016 at 12:51 PM, Juan Dopazo <span dir="ltr"><<a href="javascript:_e(%7B%7D,'cvml','jdopazo@yahoo-inc.com');" target="_blank">jdopazo@yahoo-inc.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">










<p>Hello,</p>
<p>I’ve been working on Yahoo Mail and we’ve been running into multiple issues with timezones. Currently EcmaScript supports only creating Date objects with the User Agent’s timezone. However, we need to be able to operate with whatever timezone our users selected in their settings page. In most cases we just need to render dates with the correct timezone and this is currently available using the Ecma 402 APIs. However, in other cases we need to make certain computations taking into account an arbitrary timezone and this is not covered by either EcmaScript or Ecma 402.</p>
<p>In particular, we need to answer the following questions:</p>
<ul>
<li>Is a certain date in the current day/month/year? This means given a Date object, is it in the current day for an arbitrary timezone?<br>
</li>
<li>When is the start of the day/month for this timezone?</li></ul>
<p>Currently the only way to answer these questions is by calculating the timezone offset for the timezone around the date we’re studying. And the way to do that is to render a date using Intl.DateTimeFormat and recreate a date object: <a><span>https://gist.github.com/juando<wbr>pazo/b52820e368739ed19cb206e3f<wbr>3893166</span></a>.</p>
<p>Ideally, EcmaScript would allow developers to operate on a Date object for an arbitrary timezone. Would date.setTimezone(/* IANA string identifier */) work? I know it’s a problem that is in the middle between EcmaScript and Ecma 402.</p>
<p>Thank you,</p>
<p>Juan Dopazo<br></p>


<br><br>______________________________<wbr>_________________<br>
es-discuss mailing list<br>
<a href="javascript:_e(%7B%7D,'cvml','es-discuss@mozilla.org');" target="_blank">es-discuss@mozilla.org</a><br>
<a href="https://mail.mozilla.org/" target="_blank">https://mail.mozilla.org/</a>listi<wbr>nfo/es-discuss<br>
<br></blockquote></div><br></div>
</blockquote></div>