GMT to EST: time zone conversion

EST is GMT−5; EDT (Mar–Nov) is GMT−4

To convert GMT to EST, subtract 5 hours: 14:00 GMT is 09:00 EST. While New York is on daylight saving, from the second Sunday in March to the first Sunday in November, it’s on EDT, GMT−4: 14:00 GMT is 10:00 EDT.

GMT or London time?

GMT means two things. As an offset it’s UTC+0 all year, the “GMT” in “GMT−5”. As a clock it’s the UK’s winter time: London switches to BST, UTC+1, from the last Sunday in March to the last Sunday in October. If you mean “what time is it in New York when it’s 14:00 in London”, the answer is 5 hours behind for most of the year, not 4:

                  GMT (UTC+0) to NY    London to NY
Jan 1  – Mar 8    5 hours (EST)        5 hours (GMT → EST)
Mar 8  – Mar 29   4 hours (EDT)        4 hours (GMT → EDT)
Mar 29 – Oct 25   4 hours (EDT)        5 hours (BST → EDT)
Oct 25 – Nov 1    4 hours (EDT)        4 hours (GMT → EDT)
Nov 1  – Dec 31   5 hours (EST)        5 hours (GMT → EST)

Typed into the tool below, GMT is the fixed UTC+0, and its note points to Europe/London for UK time.

A worked conversion

The tool below starts at 14:00 in London on Thursday, January 15, 2026, when London is on GMT:

2026-01-15 14:00 Europe/London (UTC+00:00, GMT)
2026-01-15 09:00 America/New_York (UTC-05:00, EST)

On July 15, 14:00 in London is 14:00 BST, which is 09:00 EDT. 14:00 GMT that day is 15:00 in London and 10:00 in New York.

The Etc/GMT sign trap

The tz database has fixed-offset zones named Etc/GMT+5 and Etc/GMT-5, and their signs are inverted, following POSIX: Etc/GMT+5 is UTC−5, five hours behind. Reading Etc/GMT-5 as “GMT−5” puts New York ten hours off:

new Date('2026-01-15T14:00:00Z').toLocaleString('en-US', { timeZone: 'Etc/GMT-5', timeZoneName: 'short' })
// '1/15/2026, 7:00:00 PM GMT+5'

Neither one follows daylight saving anyway. Use America/New_York, with Europe/London for UK time or UTC for the fixed offset.

In code

from datetime import datetime
from zoneinfo import ZoneInfo

datetime(2026, 1, 15, 14, 0, tzinfo=ZoneInfo("Europe/London")).astimezone(ZoneInfo("America/New_York")).isoformat()
# '2026-01-15T09:00:00-05:00'
TZ=America/New_York date -d 'TZ="Europe/London" 2026-01-15 14:00'    # GNU date
# Thu Jan 15 09:00:00 EST 2026

Meeting window

London’s 14:00 to 17:00 is New York’s 09:00 to 12:00: three shared working hours. In the two stretches when the gap is 4 hours there are four, from 13:00 in London.

Try it in the Time Zone Converter

2026-01-15 14:00 Thursday in Europe/London (UTC+00:00, GMT)

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

See it in other zones

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

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