Open Playground
JS TutorialLesson #210

JavaScript Temporal Conversion

The table below shows how Temporal types can be converted.

Temporal Conversion Rules

The table below shows how Temporal types can be converted.

FromPlain DatePlain TimePlain DateTimeZoned DateTimeInstant
PlainDateNoYesNoNo
PlainTimeNoNoNoNo
PlainDateTimeYesYesYesNo
ZonedDateTimeYesYesYesYes
InstantNoNoNoYes

Conversion Methods

FromToMethod
DateInstantdate.toTemporalInstant()
PlainDatePlainTimeNone
PlainDatePlainDateTimedate.toPlainDateTime()
PlainDateZonedTimeNone
PlainDateInstantNone
PlainYearMonthPlainDateyearmonth.toPlainDate()
PlainMonthDayPlainDatemonthday.toPlainDate()
PlainDateTimePlainDatedatetime.toPlainDate()
PlainDateTimePlainTimedatetime.toPlainTime()
PlainDateTimeZonedDateTimedatetime.toZonedDateTime()
PlainDateTimeInstantNone
ZonedDateTimePlainDatezoned.toPlainDate()
ZonedDateTimePlainDateTimezoned.toPlainDateTime()
ZonedDateTimePlainTimezoned.toPlainTime()
ZonedDateTimeInstantzoned.toInstant()
InstantZonedDateTimezoned.toZonedDateTimeISO()

Legacy Date to Temporal Instant

Example

Example Code

javascript
Try it Yourself
const legacyDate = new Date();

const instant = legacyDate.toTemporalInstant();

PlainDate to PlainDateTime

You might like to add a time.

Examples

Example Code

javascript
Try it Yourself
const date = Temporal.PlainDate.from("2026-05-17");

const dateTime = date.toPlainDateTime();

Combine Date and Time

You can combine PlainDate and PlainTime to create a PlainDateTime object.

Example

Example Code

javascript
Try it Yourself
// Create a PlainDate object

const date = Temporal.PlainDate.from("2026-05-17");

// Create a PlainTime object

const time = Temporal.PlainTime.from("14:30");

// Convert into a PlainDateTime object

const dateTime = date.toPlainDateTime(time);

PlainDateTime to PlainDate

Example

Example Code

javascript
Try it Yourself
const dateTime = Temporal.PlainDateTime.from("2026-05-17T14:30");

const date = dateTime.toPlainDate();

PlainDateTime to PlainTime

Example

Example Code

javascript
Try it Yourself
const dateTime = Temporal.PlainDateTime.from("2026-05-17T14:30");

const time = dateTime.toPlainTime();

PlainDateTime to ZonedDateTime

PlainDateTime does not contain a time zone.

You must provide one to create a ZonedDateTime.

Wrong

Example Code

javascript
Try it Yourself
const dateTime = Temporal.PlainDateTime.from("2026-05-17T14:30");

const zoned = dateTime.toZonedDateTime();

ZonedDateTime to PlainDateTime

Example

Example Code

javascript
Try it Yourself
const zoned = Temporal.ZonedDateTime.from("2026-05-17T14:30:00+02:00[Europe/Oslo]");

const dateTime = zoned.toPlainDateTime();

ZonedDateTime to PlainDate

Example

Example Code

javascript
Try it Yourself
const zoned = Temporal.ZonedDateTime.from("2026-05-17T14:30:00+02:00[Europe/Oslo]");

const date = zoned.toPlainDate();

ZonedDateTime to PlainTime

Example

Example Code

javascript
Try it Yourself
const zoned = Temporal.ZonedDateTime.from("2026-05-17T14:30:00+02:00[Europe/Oslo]");

const time = zoned.toPlainTime();

ZonedDateTime to Instant

Example

Example Code

javascript
Try it Yourself
const zoned = Temporal.ZonedDateTime.from("2026-05-17T14:30:00+02:00[Europe/Oslo]");

const instant = zoned.toInstant();

Instant to ZonedDateTime

Instant does not have a toZonedDateTime() method.

You must convert it to a ISO zone first.

Wrong

Example Code

javascript
Try it Yourself
const instant = Temporal.Instant.from("2026-05-17T12:30:00Z");

const zoned = instant.toZonedDateTime("Europe/Oslo");

Special Temporal Types

FromtoPlainDate()toPlainDateTime()toZonedDateTime()
PlainYearMonthYES + day valueNoNo
PlainMonthDayYES + year valueNoNo
PlainMonthDay and PlainYearMonth need missing parts before becoming a full date.

PlainYearMonth to PlainDate

Example

Example Code

javascript
Try it Yourself
const yearMonth = new Temporal.PlainYearMonth(2026, 5);

const date = yearMonth.toPlainDate({ day: 17 });

PlainMonthDay to PlainDate

Example

Example Code

javascript
Try it Yourself
const monthDay = new Temporal.PlainYearMonth(2026, 5);

const date = monthDay.toPlainDate({ year: 2026 });

Time Zone Conversion

Converting time from another time zone is handled by the ZonedDateTime method withTimeZone().

Example

Example Code

javascript
Try it Yourself
const zdtOslo = Temporal.Now.zonedDateTimeISO('Europe/Oslo');

const zdtTokyo = zdtOslo.withTimeZone('Asia/Tokyo');

Interactive Code Examples

JS Example 1

javascript
Try it Yourself
JavaScript syntax and algorithm demonstration.
const legacyDate = new Date();



const instant = legacyDate.toTemporalInstant();

Examples

javascript
Try it Yourself
JavaScript syntax and algorithm demonstration.
const date = Temporal.PlainDate.from("2026-05-17");



const dateTime = date.toPlainDateTime();

JS Example 3

javascript
Try it Yourself
JavaScript syntax and algorithm demonstration.
// Create a PlainDate object

const date = Temporal.PlainDate.from("2026-05-17");



// Create a PlainTime object



const time = Temporal.PlainTime.from("14:30");



// Convert into a PlainDateTime object

const dateTime = date.toPlainDateTime(time);

JS Example 4

javascript
Try it Yourself
JavaScript syntax and algorithm demonstration.
const dateTime = Temporal.PlainDateTime.from("2026-05-17T14:30");



const date = dateTime.toPlainDate();

JS Example 5

javascript
Try it Yourself
JavaScript syntax and algorithm demonstration.
const dateTime = Temporal.PlainDateTime.from("2026-05-17T14:30");



const time = dateTime.toPlainTime();

Wrong

javascript
Try it Yourself
JavaScript syntax and algorithm demonstration.
const dateTime = Temporal.PlainDateTime.from("2026-05-17T14:30");



const zoned = dateTime.toZonedDateTime();