UTC vs GMT: What Is the Difference?
Why UTC and GMT usually show the same time, how they differ technically, and which one to use in software.
The short answer
For almost every practical purpose, UTC and GMT are the same time. If a clock says it is showing GMT, it will show the same hour and minute as a clock showing UTC. The difference between them is technical, not something you would notice on a wall clock.
What each one actually is
GMT (Greenwich Mean Time) is a time zone, originally defined by the average time the sun crosses the meridian at Greenwich, London. UTC (Coordinated Universal Time) is a time standard, maintained by atomic clocks and coordinated internationally. UTC does not observe daylight saving time, and neither does GMT as a zone, which is part of why they line up so closely.
The small technical gap between them (fractions of a second, managed historically through leap seconds) is irrelevant for calendars, schedules or software timestamps.
Which one to use in software
Use UTC. It is the modern standard, it is what Unix time, ISO 8601 and virtually every programming language's time zone database use as the reference point, and it is unambiguous: there is no country or region called “UTC” that could add its own daylight saving rule to it. GMT, by contrast, is also the name of an actual time zone used by the UK in winter, which can cause confusion when a UK server's local zone is labelled GMT.
One practical trap
Because the UK's time zone is called GMT in winter and BST (British Summer Time) in summer, code that hard-codes “GMT” as an offset can be off by an hour for half the year. Use the IANA zone name Europe/London instead of the abbreviation GMT if you specifically mean UK local time, and use UTC when you mean the neutral reference point.