leigh
leigh10mo ago

Timezones in Dates?

Hi everyone, what's the right way to create a Date with a specific timezone?
1 Reply
Deno AI Helper
Deno AI Helper10mo ago
The JavaScript Date object itself does not have a timezone associated with it. It represents a single point in time, which can be expressed in any timezone. When you create a Date object, it is instantiated based on the system's local time. However, you can format a Date to a specific timezone using the toLocaleString method with the timeZone option. Here's an example from the documentation:
new Date().toLocaleString("en-US", {
dateStyle: "full",
timeStyle: "medium",
timeZone: "America/Los_Angeles",
})
new Date().toLocaleString("en-US", {
dateStyle: "full",
timeStyle: "medium",
timeZone: "America/Los_Angeles",
})
This will format the date and time according to the specified timezone ("America/Los_Angeles" in this case), but the underlying Date object still represents the same point in time. If you need to perform operations like adding hours or days to a date in a specific timezone, you'll need to take into account the timezone offset. This can get complex, and you might want to use a library like date-fns or moment-timezone to help with this.