UTC to PST: time zone conversion

PST is UTC−8; PDT (Mar–Nov) is UTC−7

To convert UTC to PST, subtract 8 hours: 17:00 UTC is 09:00 PST. From the second Sunday in March to the first Sunday in November, Los Angeles, Seattle and Vancouver are on PDT, UTC−7, so 17:00 UTC is 10:00 PDT.

Through 2026

Jan 1  – Mar 8    PST  UTC−8    17:00 UTC is 09:00
Mar 8  – Nov 1    PDT  UTC−7    17:00 UTC is 10:00
Nov 1  – Dec 31   PST  UTC−8    17:00 UTC is 09:00

The switches happen at 02:00 Pacific time, which is 10:00 UTC on March 8 and 09:00 UTC on November 1.

A worked conversion

The tool below starts at 17:00 UTC on Thursday, January 15, 2026:

2026-01-15 17:00 UTC (UTC+00:00, UTC)
2026-01-15 09:00 America/Los_Angeles (UTC-08:00, PST)

Before 08:00 UTC (07:00 in summer), it’s still the previous day in California: 07:59 UTC on January 15 is 23:59 PST on January 14. A daily report stamped with the UTC date runs a day ahead of the Pacific one for those hours.

What code does with “PST”

The same three letters mean different things to different tools. Node.js 22 reads PST as America/Los_Angeles, daylight saving included:

new Date('2026-07-15T17:00:00Z').toLocaleString('en-US', { timeZone: 'PST', timeZoneName: 'short' })
// '7/15/2026, 10:00:00 AM PDT'

GNU date doesn’t know the name and quietly uses UTC:

TZ=PST date -d '2026-07-15 17:00 UTC'
# Wed Jul 15 17:00:00 PST 2026      wrong: that's UTC

Python’s ZoneInfo("PST") raises ZoneInfoNotFoundError. Only America/Los_Angeles means the same thing everywhere. The tool below reads PST as America/Los_Angeles and says so in a note, which also mentions Philippine Standard Time.

In code

from datetime import datetime, timezone
from zoneinfo import ZoneInfo

datetime(2026, 7, 15, 17, 0, tzinfo=timezone.utc).astimezone(ZoneInfo("America/Los_Angeles")).isoformat()
# '2026-07-15T10:00:00-07:00'
TZ=America/Los_Angeles date -d '2026-01-15 17:00 UTC'
# Thu Jan 15 09:00:00 PST 2026

Scheduling

A job set for 17:00 UTC runs at 09:00 in Los Angeles in winter and 10:00 in summer. To keep 09:00 Pacific all year, schedule it in America/Los_Angeles, or move it to 16:00 UTC while daylight saving is on.

Try it in the Time Zone Converter

2026-01-15 17:00 Thursday in UTC (UTC+00:00, UTC)

2026-01-15T17:00:00.000Z · in 15 days

See it in other zones

  • 2026-01-15 09:00Thursday UTC-08:00 PST
10 zones at a time at most.

Runs in your browser. Nothing you enter is sent anywhere.