Что такое время в формате UTC?

«Что такое время в формате UTC?» — вопрос из категории Форматы данных, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

UTC (Coordinated Universal Time) — это всемирный стандарт времени, основанный на высокоточных атомных часах. Это нейтральная временная зона, которая служит точкой отсчёта для всех остальных часовых поясов на планете.

Зачем он нужен в IT? Для устранения неоднозначности. Хранение и передача времени в UTC — это best practice, которая предотвращает ошибки, связанные с разными часовыми поясами пользователей, серверов и переходом на летнее время.

Примеры работы с UTC:

1. Получение текущего времени в UTC:

// JavaScript
const nowUTC = new Date().toISOString(); // "2024-03-14T12:34:56.789Z"
// Суффикс 'Z' означает 'Zulu time', то есть UTC.
# Python
from datetime import datetime, timezone
now_utc = datetime.now(timezone.utc)
print(now_utc.isoformat())  # 2024-03-14T12:34:56.789+00:00

2. Важные принципы:

  • Храните в UTC: Все метки времени в базах данных, логах и API должны храниться в UTC.
  • Преобразуйте для отображения: Конвертируйте UTC в локальный часовой пояс пользователя только на уровне представления (в UI).
  • Не путать с GMT: GMT (Greenwich Mean Time) — это часовой пояс, а UTC — более точный стандарт. В практическом программировании их часто считают эквивалентными.
  • Игнорирование DST: UTC не имеет перехода на летнее время, что упрощает расчёты.

Формат: Стандартный строковый формат — ISO 8601, например, 2024-03-14T12:34:56Z.