Europe/Berlin time zone
1:10PMCET
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/Berlin
Europe/Berlin is the IANA time zone for most of Germany in Germany, Denmark, Norway, Sweden and Svalbard and Jan Mayen. It currently keeps Central European Standard Time (CET, UTC+1) in winter and Central European Summer Time (CEST, UTC+2) in summer.
The zone serves 5 countries or territories because their clocks have agreed since 1970; tzdata lists them together in zone1970.tab. That says nothing about borders or sovereignty, as the file’s header points out.
Its principal location is Berlin at 52.50° N, 13.37° 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/Berlin since 1970
The record starts with local mean time (UTC+0:53), which ended on March 31, 1893. The first daylight saving time in the record is in 1916.
| Years | Clocks | Abbreviations |
|---|---|---|
| 1970–1979 | UTC+1 all year | CET |
| 1980 onward | UTC+1 in winter, UTC+2 in summer | CET, CEST |
Before 1970
27 offset changes before 1970 in the record; the first 12 and the last 12:
- Friday, March 31, 1893: UTC+0:53 → 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
- Monday, September 16, 1918: UTC+2 → UTC+1 (CET)
- Monday, April 1, 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
- Monday, October 4, 1943: UTC+2 → UTC+1 (CET)
- Monday, April 3, 1944: UTC+1 → UTC+2 (CEST), daylight saving time
- Monday, September 24, 1945: UTC+3 → UTC+2 (CEST), daylight saving time
- Sunday, November 18, 1945: UTC+2 → UTC+1 (CET)
- Sunday, April 14, 1946: UTC+1 → UTC+2 (CEST), daylight saving time
- Monday, October 7, 1946: UTC+2 → UTC+1 (CET)
- Sunday, April 6, 1947: UTC+1 → UTC+2 (CEST), daylight saving time
- Sunday, May 11, 1947: UTC+2 → UTC+3 (CEMT), daylight saving time
- Sunday, June 29, 1947: UTC+3 → UTC+2 (CEST), daylight saving time
- Sunday, October 5, 1947: UTC+2 → UTC+1 (CET)
- Sunday, April 18, 1948: UTC+1 → UTC+2 (CEST), daylight saving time
- Sunday, October 3, 1948: UTC+2 → UTC+1 (CET)
- Sunday, April 10, 1949: UTC+1 → UTC+2 (CEST), daylight saving time
- Sunday, October 2, 1949: 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/Berlin in tzdata. Their pages redirect here: Arctic/Longyearbyen, Atlantic/Jan_Mayen, Europe/Copenhagen, Europe/Oslo, Europe/Stockholm.
Other zones that keep exactly the same time under the current rules (but have a different history): Africa/Ceuta, Europe/Andorra, Europe/Belgrade, Europe/Brussels, Europe/Budapest, Europe/Gibraltar, Europe/Madrid, Europe/Malta, Europe/Paris, Europe/Prague, Europe/Rome, Europe/Tirane.
Places on Europe/Berlin
Convert Berlin time
Using Europe/Berlin 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/Berlin' })
# Python 3.9+
from zoneinfo import ZoneInfo
from datetime import datetime
datetime.now(ZoneInfo('Europe/Berlin'))
// Java
java.time.ZonedDateTime.now(java.time.ZoneId.of("Europe/Berlin"))
// Go
loc, _ := time.LoadLocation("Europe/Berlin")
time.Now().In(loc)
-- PostgreSQL
SELECT now() AT TIME ZONE 'Europe/Berlin';
# Shell
TZ='Europe/Berlin' 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.