Source code

Revision control

Copy as Markdown

Other Tools

// |reftest| skip-if(!this.hasOwnProperty('Temporal')) -- Temporal is not enabled unconditionally
// Copyright (C) 2018 Bloomberg LP. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-temporal.zoneddatetime.from
description: Test behaviour around DST boundaries with the option offset set, when the argument is a string.
features: [Temporal]
---*/
// Fall DST end
let zdt = Temporal.ZonedDateTime.from(
"2020-11-01T01:30-07:00[America/Los_Angeles]",
{ offset: "prefer" });
assert.sameValue(
zdt.offset,
"-07:00",
"Offset result when option offset: prefer and offset matches time zone (first 1:30 when DST ends)");
zdt = Temporal.ZonedDateTime.from(
"2020-11-01T01:30[America/Los_Angeles]",
{ offset: "prefer" });
assert.sameValue(
zdt.offset,
"-07:00",
"Offset result when option offset: prefer and string argument is ambiguous");
zdt = Temporal.ZonedDateTime.from(
"2020-11-01T01:30-08:00[America/Los_Angeles]",
{ offset: "prefer" });
assert.sameValue(
zdt.offset,
"-08:00",
"Offset result when option offset: prefer and offset matches time zone (second 1:30 when DST ends)");
zdt = Temporal.ZonedDateTime.from(
"2020-11-01T04:00-07:00[America/Los_Angeles]",
{ offset: "prefer" });
assert.sameValue(
zdt.offset,
"-08:00",
"Offset result when option offset: prefer and offset does not match time zone, DST end");
assert.sameValue(
zdt.hour,
4,
"Hour result when option offset: prefer and offset does not match time zone, DST end");
zdt = Temporal.ZonedDateTime.from(
"2020-11-01T04:00-07:00[America/Los_Angeles]",
{ offset: "use" });
assert.sameValue(
zdt.offset,
"-08:00",
"Offset result when option offset: use and wrong offset, DST end");
assert.sameValue(
zdt.hour,
3,
"Hour result when option offset: use and wrong offset, DST end");
zdt = Temporal.ZonedDateTime.from(
"2020-11-01T04:00-12:00[America/Los_Angeles]",
{ offset: "ignore" });
assert.sameValue(
zdt.offset,
"-08:00",
"Offset result when option offset: ignore and wrong offset, DST end");
assert.sameValue(
zdt.hour,
4,
"Hour result when option offset: ignore and wrong offset, DST end");
// Spring DST start
zdt = Temporal.ZonedDateTime.from(
"2020-03-08T02:30[America/Los_Angeles]",
{ offset: "ignore" });
assert.sameValue(
zdt.offset,
"-07:00",
"Offset result when option offset: ignore, DST start");
assert.sameValue(
zdt.hour,
3,
"Hour result when option offset: ignore, DST start");
zdt = Temporal.ZonedDateTime.from(
"2020-03-08T02:30-23:59[America/Los_Angeles]",
{ offset: "prefer" });
assert.sameValue(
zdt.offset,
"-07:00",
"Offset result when option offset: ignore and wrong offset, DST start");
assert.sameValue(
zdt.hour,
3,
"Hour result when option offset: ignore and wrong offset, DST start");
reportCompare(0, 0);