UTC (Coordinated Universal Time) і GMT (Greenwich Mean Time) часто використовують як синоніми, хоча технічно це різні поняття: UTC — це стандарт відліку часу, а GMT — конкретний часовий пояс, що історично збігався з цим стандартом.
Чому UTC не змінюється, а GMT — може
UTC базується на атомних годинниках і не переходить на літній час — це стабільна еталонна точка відліку для всього світу. Часовий пояс Великої Британії, навпаки, влітку переходить на BST (British Summer Time, UTC+1), тому "лондонський час" не завжди дорівнює GMT, хоча GMT історично дорівнює UTC+0.
Зсув відносно UTC
Кожен часовий пояс визначається зсувом відносно UTC, наприклад UTC+2 для Києва взимку або UTC+3 влітку (через перехід на літній час в Україні до 2024 року). Цей зсув може бути дробовим — наприклад, Індія використовує UTC+5:30.
Чому конвертація часових поясів складна на практиці
Правила переходу на літній/зимовий час змінюються урядами країн непередбачувано і можуть відрізнятися рік від року, тому надійна конвертація часу вимагає постійно оновлюваної бази даних часових поясів (як-от IANA Time Zone Database), а не просто фіксованого зсуву в годинах.
Навіщо це потрібно
- Правильно відображати час зустрічі для учасників у різних часових поясах.
- Конвертувати мітки часу з логів сервера в локальний час користувача.
- Уникати помилок на межі переходу на літній/зимовий час у розкладах.
Не всі зсуви кратні годині
Хоча більшість часових поясів зсунуті відносно UTC на ціле число годин, є винятки: Індія використовує UTC+5:30, Непал — UTC+5:45, а деякі регіони Австралії — UTC+9:30 чи UTC+10:30. Коду, який припускає, що зсув завжди кратний 60 хвилинам, варто уникати — саме тому надійні бібліотеки працюють із назвами поясів IANA, а не довільними числовими зсувами.