UTC to PST Converter
Pacific Standard Time is UTC-8, so subtract 8 hours from UTC. In summer the West Coast is on PDT (UTC-7) instead. 12:00 UTC is 4:00 AM on PST and 5:00 AM on PDT.
“PST” on this page means the fixed UTC-8 winter offset, used from November to March in California, Oregon, Washington and Nevada. Every table shows PDT alongside it, because the same states are on PDT for about eight months of the year.
UTC to PST Conversion Table
Full 24-hour table. PST is UTC-8 and PDT is UTC-7 (second Sunday in March to first Sunday in November).
| UTC (24h) | UTC (12h) | PST (UTC-8) | PDT (UTC-7) |
|---|---|---|---|
| 00:00 | 12:00 AM | 4:00 PMprevious day | 5:00 PMprevious day |
| 01:00 | 1:00 AM | 5:00 PMprevious day | 6:00 PMprevious day |
| 02:00 | 2:00 AM | 6:00 PMprevious day | 7:00 PMprevious day |
| 03:00 | 3:00 AM | 7:00 PMprevious day | 8:00 PMprevious day |
| 04:00 | 4:00 AM | 8:00 PMprevious day | 9:00 PMprevious day |
| 05:00 | 5:00 AM | 9:00 PMprevious day | 10:00 PMprevious day |
| 06:00 | 6:00 AM | 10:00 PMprevious day | 11:00 PMprevious day |
| 07:00 | 7:00 AM | 11:00 PMprevious day | 12:00 AM |
| 08:00 | 8:00 AM | 12:00 AM | 1:00 AM |
| 09:00 | 9:00 AM | 1:00 AM | 2:00 AM |
| 10:00 | 10:00 AM | 2:00 AM | 3:00 AM |
| 11:00 | 11:00 AM | 3:00 AM | 4:00 AM |
| 12:00 | 12:00 PM | 4:00 AM | 5:00 AM |
| 13:00 | 1:00 PM | 5:00 AM | 6:00 AM |
| 14:00 | 2:00 PM | 6:00 AM | 7:00 AM |
| 15:00 | 3:00 PM | 7:00 AM | 8:00 AM |
| 16:00 | 4:00 PM | 8:00 AM | 9:00 AM |
| 17:00 | 5:00 PM | 9:00 AM | 10:00 AM |
| 18:00 | 6:00 PM | 10:00 AM | 11:00 AM |
| 19:00 | 7:00 PM | 11:00 AM | 12:00 PM |
| 20:00 | 8:00 PM | 12:00 PM | 1:00 PM |
| 21:00 | 9:00 PM | 1:00 PM | 2:00 PM |
| 22:00 | 10:00 PM | 2:00 PM | 3:00 PM |
| 23:00 | 11:00 PM | 3:00 PM | 4:00 PM |
* Before 08:00 UTC on PST (07:00 on PDT) the Pacific time falls on the previous calendar day.
Not Every Pacific City Changes
British Columbia moved its clocks forward on March 8, 2026 and keeps UTC-7 all year, and Arizona has never changed, so “Pacific” and “Mountain” are not fixed gaps. The offsets on two dates in 2027:
| City | Mid-January | Mid-July | 12:00 UTC in January |
|---|---|---|---|
| Los Angeles, San Francisco, Seattle, Portland | UTC-8 | UTC-7 | 4:00 AM |
| Vancouver (British Columbia, fixed since March 8, 2026) | UTC-7 | UTC-7 | 5:00 AM |
| Phoenix (Arizona, no clock change) | UTC-7 | UTC-7 | 5:00 AM |
| Denver (Mountain, for comparison) | UTC-7 | UTC-6 | 5:00 AM |
From November to March Vancouver is one hour ahead of Los Angeles, and Phoenix is one hour ahead of it too. In summer all three show the same time.
A West Coast Workday in UTC
A 9-to-5 day in Los Angeles runs into the next UTC date, and it starts one hour earlier in UTC in summer than in winter:
| On the West Coast | On PST (UTC-8) | On PDT (UTC-7) |
|---|---|---|
| Starts, 9:00 AM | 17:00 UTC | 16:00 UTC |
| Ends, 5:00 PM | 01:00 UTCnext day | 00:00 UTCnext day |
When the Clocks Change
Pacific Time moves forward at 2:00 AM on the second Sunday in March and back at 2:00 AM on the first Sunday in November. UTC does not move, so what changes is the offset: 17:00 UTC is 9:00 AM on PST and 10:00 AM on PDT. The next three years, from the time zone database (more on the 2026 daylight saving page):
| Date | Clock | Offset |
|---|---|---|
| Sunday, March 8, 2026 | 2:00 AM to 3:00 AM | UTC-8 to UTC-7 |
| Sunday, November 1, 2026 | 2:00 AM to 1:00 AM | UTC-7 to UTC-8 |
| Sunday, March 14, 2027 | 2:00 AM to 3:00 AM | UTC-8 to UTC-7 |
| Sunday, November 7, 2027 | 2:00 AM to 1:00 AM | UTC-7 to UTC-8 |
| Sunday, March 12, 2028 | 2:00 AM to 3:00 AM | UTC-8 to UTC-7 |
| Sunday, November 5, 2028 | 2:00 AM to 1:00 AM | UTC-7 to UTC-8 |
Converting a Timestamp in Code
A UTC timestamp ends in Z. The same moment written for PST carries the offset instead: 2026-03-01T15:00:00Z and 2026-03-01T07:00:00-08:00 are one instant, and the local date is the same. Libraries convert it for you if you give them the zone name America/Los_Angeles instead of a fixed number.
# Python 3.9+
from datetime import datetime
from zoneinfo import ZoneInfo
datetime.fromisoformat("2026-03-01T15:00:00+00:00").astimezone(ZoneInfo("America/Los_Angeles"))// JavaScript
new Date("2026-03-01T15:00:00Z").toLocaleString("en-US", { timeZone: "America/Los_Angeles" })Both give the PST time shown above.