Europe/Warsaw time zone
2:09PMCET
CETUTC+1+6 h vs New York (you)
- Next transition: Sunday, March 28, 2027: at 2:00 AM clocks go forward 1 hour to 3:00 AM (CEST, UTC+2)
- Next transition: Sunday, October 31, 2027: at 3:00 AM clocks go back 1 hour to 2:00 AM (CET, UTC+1)
- Next transition: Sunday, March 26, 2028: at 2:00 AM clocks go forward 1 hour to 3:00 AM (CEST, UTC+2)
- Next transition: Sunday, October 29, 2028: at 3:00 AM clocks go back 1 hour to 2:00 AM (CET, UTC+1)
- Next transition: Sunday, March 25, 2029: at 2:00 AM clocks go forward 1 hour to 3:00 AM (CEST, UTC+2)
- Next transition: Sunday, October 28, 2029: at 3:00 AM clocks go back 1 hour to 2:00 AM (CET, UTC+1)
- Next transition: Sunday, March 31, 2030: at 2:00 AM clocks go forward 1 hour to 3:00 AM (CEST, UTC+2)
- Next transition: Sunday, October 27, 2030: at 3:00 AM clocks go back 1 hour to 2:00 AM (CET, UTC+1)
- Next transition: Sunday, March 30, 2031: at 2:00 AM clocks go forward 1 hour to 3:00 AM (CEST, UTC+2)
- Next transition: Sunday, October 26, 2031: at 3:00 AM clocks go back 1 hour to 2:00 AM (CET, UTC+1)
- Next transition: Sunday, March 28, 2032: at 2:00 AM clocks go forward 1 hour to 3:00 AM (CEST, UTC+2)
- Next transition: Sunday, October 31, 2032: at 3:00 AM clocks go back 1 hour to 2:00 AM (CET, UTC+1)
About Europe/Warsaw
Europe/Warsaw is the IANA time zone for Poland. It currently keeps Central European Standard Time (CET, UTC+1) in winter and Central European Summer Time (CEST, UTC+2) in summer.
Its principal location is Warsaw at 52.25° N, 21.00° E.
Abbreviations in use: CET, CEST. Offset page: UTC+1.
Rule for future years (POSIX TZ string)
CET-1CEST,M3.5.0,M10.5.0/3
The standard time is called CET and is UTC+1. POSIX writes the offset with the opposite sign (west of Greenwich is positive), which is why the string says "-1". Daylight saving time is called CEST and is UTC+2. It starts on the last Sunday of March at 02:00 and ends on the last Sunday of October at 03:00, local time. Software that has no full tzdata copy, such as many embedded devices, can use this string directly as the TZ environment variable.
Upcoming transitions
- Sunday, March 28, 2027: at 2:00 AM clocks go forward 1 hour to 3:00 AM (CEST, UTC+2)
- Sunday, October 31, 2027: at 3:00 AM clocks go back 1 hour to 2:00 AM (CET, UTC+1)
- Sunday, March 26, 2028: at 2:00 AM clocks go forward 1 hour to 3:00 AM (CEST, UTC+2)
- Sunday, October 29, 2028: at 3:00 AM clocks go back 1 hour to 2:00 AM (CET, UTC+1)
- Sunday, March 25, 2029: at 2:00 AM clocks go forward 1 hour to 3:00 AM (CEST, UTC+2)
- Sunday, October 28, 2029: at 3:00 AM clocks go back 1 hour to 2:00 AM (CET, UTC+1)
- Sunday, March 31, 2030: at 2:00 AM clocks go forward 1 hour to 3:00 AM (CEST, UTC+2)
- Sunday, October 27, 2030: at 3:00 AM clocks go back 1 hour to 2:00 AM (CET, UTC+1)
- Sunday, March 30, 2031: at 2:00 AM clocks go forward 1 hour to 3:00 AM (CEST, UTC+2)
- Sunday, October 26, 2031: at 3:00 AM clocks go back 1 hour to 2:00 AM (CET, UTC+1)
- Sunday, March 28, 2032: at 2:00 AM clocks go forward 1 hour to 3:00 AM (CEST, UTC+2)
- Sunday, October 31, 2032: at 3:00 AM clocks go back 1 hour to 2:00 AM (CET, UTC+1)
Computed from tzdata 2026f; local times are read on the clock just before each change.
History of Europe/Warsaw since 1970
The record starts with local mean time (UTC+1:24), which ended on January 1, 1880. The first daylight saving time in the record is in 1916.
| Years | Clocks | Abbreviations |
|---|---|---|
| 1970–1976 | UTC+1 all year | CET |
| 1977 onward | UTC+1 in winter, UTC+2 in summer | CET, CEST |
Before 1970
41 offset changes before 1970 in the record; the first 12 and the last 12:
- Thursday, August 5, 1915: UTC+1:24 → UTC+1 (CET)
- Sunday, April 30, 1916: UTC+1 → UTC+2 (CEST), daylight saving time
- Sunday, October 1, 1916: UTC+2 → UTC+1 (CET)
- Monday, April 16, 1917: UTC+1 → UTC+2 (CEST), daylight saving time
- Monday, September 17, 1917: UTC+2 → UTC+1 (CET)
- Monday, April 15, 1918: UTC+1 → UTC+2 (CEST), daylight saving time
- Tuesday, April 15, 1919: UTC+2 → UTC+3 (EEST), daylight saving time
- Tuesday, September 16, 1919: UTC+3 → UTC+2 (EET)
- Thursday, June 1, 1922: UTC+2 → UTC+1 (CET)
- Sunday, June 23, 1940: UTC+1 → UTC+2 (CEST), daylight saving time
- Monday, November 2, 1942: UTC+2 → UTC+1 (CET)
- Monday, March 29, 1943: UTC+1 → UTC+2 (CEST), daylight saving time
- Sunday, May 31, 1959: UTC+1 → UTC+2 (CEST), daylight saving time
- Sunday, October 4, 1959: UTC+2 → UTC+1 (CET)
- Sunday, April 3, 1960: UTC+1 → UTC+2 (CEST), daylight saving time
- Sunday, October 2, 1960: UTC+2 → UTC+1 (CET)
- Sunday, May 28, 1961: UTC+1 → UTC+2 (CEST), daylight saving time
- Sunday, October 1, 1961: UTC+2 → UTC+1 (CET)
- Sunday, May 27, 1962: UTC+1 → UTC+2 (CEST), daylight saving time
- Sunday, September 30, 1962: UTC+2 → UTC+1 (CET)
- Sunday, May 26, 1963: UTC+1 → UTC+2 (CEST), daylight saving time
- Sunday, September 29, 1963: UTC+2 → UTC+1 (CET)
- Sunday, May 31, 1964: UTC+1 → UTC+2 (CEST), daylight saving time
- Sunday, September 27, 1964: UTC+2 → UTC+1 (CET)
tzdata commits to accuracy from 1970 for every zone (zone1970.tab); earlier entries are historical research and may be incomplete.
Aliases and zones with the same clock
These older or country-specific IDs are links to Europe/Warsaw in tzdata. Their pages redirect here: Poland.
Other zones that keep exactly the same time under the current rules (but have a different history): Africa/Ceuta, Europe/Andorra, Europe/Belgrade, Europe/Berlin, Europe/Brussels, Europe/Budapest, Europe/Gibraltar, Europe/Madrid, Europe/Malta, Europe/Paris, Europe/Prague, Europe/Rome.
Places on Europe/Warsaw
- WarsawPL
Convert Warsaw time
Using Europe/Warsaw in code
Every major platform reads the same IANA ID. Store instants in UTC and convert with the ID at display time; never store a fixed offset for a place that has daylight saving time.
// JavaScript
new Date().toLocaleString('en-US', { timeZone: 'Europe/Warsaw' })
# Python 3.9+
from zoneinfo import ZoneInfo
from datetime import datetime
datetime.now(ZoneInfo('Europe/Warsaw'))
// Java
java.time.ZonedDateTime.now(java.time.ZoneId.of("Europe/Warsaw"))
// Go
loc, _ := time.LoadLocation("Europe/Warsaw")
time.Now().In(loc)
-- PostgreSQL
SELECT now() AT TIME ZONE 'Europe/Warsaw';
# Shell
TZ='Europe/Warsaw' date Platforms ship their own copy of tzdata and update it on their own schedule. After a rule change, outputs can differ until the platform updates; this page uses tzdata 2026f.