diff options
Diffstat (limited to 'Userland')
-rw-r--r-- | Userland/Libraries/LibJS/Runtime/Date.cpp | 8 | ||||
-rw-r--r-- | Userland/Libraries/LibJS/Runtime/DateConstructor.cpp | 2 |
2 files changed, 4 insertions, 6 deletions
diff --git a/Userland/Libraries/LibJS/Runtime/Date.cpp b/Userland/Libraries/LibJS/Runtime/Date.cpp index 721131721d..67347545a8 100644 --- a/Userland/Libraries/LibJS/Runtime/Date.cpp +++ b/Userland/Libraries/LibJS/Runtime/Date.cpp @@ -317,15 +317,12 @@ u8 week_day(double t) } // 21.4.1.7 LocalTZA ( t, isUTC ), https://tc39.es/ecma262/#sec-local-time-zone-adjustment -double local_tza(double time, bool is_utc, Optional<StringView> time_zone_override) +double local_tza(double time, [[maybe_unused]] bool is_utc, Optional<StringView> time_zone_override) { // The time_zone_override parameter is non-standard, but allows callers to override the system // time zone with a specific value without setting environment variables. auto time_zone = time_zone_override.value_or(TimeZone::current_time_zone()); - auto maybe_offset = TimeZone::get_time_zone_offset(time_zone, AK::Time::from_milliseconds(time)); - auto offset = maybe_offset.value_or(0) * 1000; - // When isUTC is true, LocalTZA( tUTC, true ) should return the offset of the local time zone from // UTC measured in milliseconds at time represented by time value tUTC. When the result is added to // tUTC, it should yield the corresponding Number tlocal. @@ -334,7 +331,8 @@ double local_tza(double time, bool is_utc, Optional<StringView> time_zone_overri // UTC measured in milliseconds at local time represented by Number tlocal. When the result is subtracted // from tlocal, it should yield the corresponding time value tUTC. - return is_utc ? offset : -offset; + auto maybe_offset = TimeZone::get_time_zone_offset(time_zone, AK::Time::from_milliseconds(time)); + return maybe_offset.value_or(0) * 1000; } // 21.4.1.8 LocalTime ( t ), https://tc39.es/ecma262/#sec-localtime diff --git a/Userland/Libraries/LibJS/Runtime/DateConstructor.cpp b/Userland/Libraries/LibJS/Runtime/DateConstructor.cpp index 25bc3def0e..a49d74f9b5 100644 --- a/Userland/Libraries/LibJS/Runtime/DateConstructor.cpp +++ b/Userland/Libraries/LibJS/Runtime/DateConstructor.cpp @@ -106,7 +106,7 @@ static Value parse_simplified_iso8601(GlobalObject& global_object, const String& // https://tc39.es/ecma262/#sec-date.parse: // "When the UTC offset representation is absent, date-only forms are interpreted as a UTC time and date-time forms are interpreted as a local time." if (!timezone.has_value() && hours.has_value()) - time_ms += local_tza(time_ms, false); + time_ms = utc_time(time_ms); if (timezone == '-') time_ms += *timezone_hours * 3'600'000 + *timezone_minutes * 60'000; |