Europe/London

Europe/London covers London, Birmingham, Glasgow and the rest of the United Kingdom, at +00:00 standard time, switching to +01:00 in summer.

Loading tool…

Worked examples

  • A winter instant in Europe/London

    Europe/London's UTC offset and DST status on a January date, converted to UTC.

  • A summer instant in Europe/London

    Europe/London's UTC offset and DST status on a July date, converted to UTC — compare against the winter example to see any DST shift.

  • Converting Europe/London to America/New_York

    A worked conversion from Europe/London to America/New_York for a specific instant.

TZ identifier and aliases

Europe/London is the canonical identifier for UK time. GB and GB-Eire are older names still pointing at the same rules but are deprecated aliases — use Europe/London in new code. The Channel Islands and Isle of Man links (Europe/Guernsey, Europe/Jersey, Europe/Isle_of_Man) currently share identical rules and are folded into the same entry, despite being separate Crown Dependencies with their own legislatures.

UTC offset and DST rule

Europe/London is +00:00 (GMT) on standard time and +01:00 (BST — British Summer Time) during daylight saving. The EU-harmonized rule applies here even post-Brexit: DST starts the last Sunday in March and ends the last Sunday in October, at 1am UTC both times — March 29 and October 25 in 2026.

Using it in cron, CI and Postgres

Set TZ=Europe/London for a process that should schedule by UK local time rather than UTC — the two are identical for roughly five months of the year and one hour apart for the rest, a distinction that's easy to miss if a system was built assuming London time is always UTC. Postgres accepts it via SET TIME ZONE 'Europe/London'; or the timezone setting, applying the DST rule correctly for any date. Where a scheduler supports a CRON_TZ=Europe/London line, jobs run by local time directly; GitHub Actions' schedule: trigger always evaluates in UTC with no per-job timezone, so a job meant to fire at a fixed London hour needs its UTC equivalent updated by hand across each DST boundary. Avoid the 1:00–2:00am local window for anything that must run exactly once — it's skipped on the March transition and repeated on the October one.

History and quirks

Greenwich Mean Time has been the UK's reference standard since the Royal Observatory's meridian was adopted internationally in 1884, and it remains the zero-offset baseline that every other UTC offset in the world is defined relative to. British Summer Time itself has a stranger history than most: from 1968 to 1971, the UK experimented with keeping BST (+01:00) year-round rather than switching back to GMT each winter, an experiment ended after studies found it made little measurable difference and darker winter mornings proved unpopular, especially in Scotland's higher latitudes. That north-south daylight disparity is why "double summer time" and permanent-BST proposals resurface periodically in UK politics without ever sticking. Because Europe/London's DST dates match the EU's own harmonized rule, Brexit hasn't actually changed anything about how or when UK clocks move — the two happen to stay synchronized by coincidence rather than treaty obligation.

Offsets and DST transitions on this page are computed from the IANA time zone database bundled with your browser; the rules described above were verified against tzdata 2026b when this page was published.

Frequently asked questions

Does Europe/London observe DST?
Yes. In the current rule it begins the last Sunday in March and ends the last Sunday in October.
What is the UTC offset of Europe/London in winter/summer?
Europe/London is +00:00 on standard time and +01:00 during daylight saving time.
Which cities use Europe/London?
London, Birmingham, Glasgow, Manchester all use the Europe/London zone — also commonly known as Greenwich Mean Time — along with the rest of the United Kingdom.
What is the deprecated alias for this zone?
GB is a deprecated backward-compatibility name for this zone. Use the canonical identifier Europe/London in code, cron jobs, `TZ` environment variables and config files instead.