Comments (2)
Thanks for this suggestion. Date.fromTemporalInstant(instant)
seems like a reasonable addition to the API, and it's consistent with Date.toTemporalInstant(instant)
which performs the opposite conversion in the V1 of Temporal.
I'd be concerned about Date.fromTemporalZonedDateTime(zonedDateTime)
however, because while gathering community usage experience of Date
to inform the design of the Temporal API, we found it to be a surprisingly common mistake made by novice JS developers to assume that Date contains a time zone. Example: https://stackoverflow.com/questions/15141762/how-to-initialize-a-javascript-date-to-a-particular-time-zone
For developers who think Date
has a time zone, it'd be logical for them to assume that Date.fromTemporalZonedDateTime(zonedDateTime)
carries the time zone from Temporal.ZonedDateTime
over to the Date
instance. If the Temporal.ZonedDateTime
instance had the user's time zone, it might take time to discover the bug because Date
appears to have the same time zone.
For this reason, if we do extend Date
<=>Temporal.*
conversions, I'd recommend that we limit to Temporal.Instant
only, in order to help those novice developers learn that converting from Temporal.ZonedDateTime
loses the time zone along the way.
from proposal-temporal-v2.
I agree with your assertion that many developers assume that Date
has a timezone.
However:
- Whatever % of developers believe that today, I'm skeptical that the existence of
Date.fromTemporalZonedDateTime()
would increase it. - The purpose of these functions is to interface with legacy Date code. If code relied on Date having a timezone, it will remain just as broken as it was before.
That said, most of the value is achieved by having Date.fromTemporalInstant()
.
from proposal-temporal-v2.
Related Issues (20)
- Make calendar ID optional in withCalendar() methods
- Provide a means to get the clock resolution
- Allow `until`/`since` across calendars if `largestUnit` is 'days' or smaller HOT 1
- load time zone from RFC 8536 TZif data
- Add resolver option(s) to support ID parsing for custom calendars and time zones
- Sortability of Temporal.PlainMonthDay
- Disambiguation options for PlainDate.toZonedDateTime, PlainTime.toZonedDateTime HOT 1
- `round` on date-having types should support month and year rounding HOT 1
- Strict ("all fields match") comparisons that take calendar and timezone into account
- Static string validation of PlainDate, PlainTime and PlainDateTime HOT 3
- Constants for the minimum and maximum values of each Temporal type
- PlainYear to complement PlainYearMonth and PlainDate
- Temporal.Calendar.toLocaleString method HOT 1
- Increased fractional precision in Duration strings
- ISO 8601 string parser
- Formatting and parsing support for RFC 7231 HTTP-dates HOT 8
- Better API for PlainYearMonth/PlainMonthDay toLocaleString HOT 12
- Support for Lunar Calendars Starting New Days at Sunset Instead of Midnight HOT 5
- `PlainDate.add` create a new `overflow` and force the day after
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from proposal-temporal-v2.