Как получить текущее время в программировании: примеры на C и Python

Иван Корнев·13 октября 2026·⏱2 мин

Чтобы получить текущее время в программировании на C и Python, используйте стандартные библиотеки: datetime и <time.h>. Это закрывает базовую задачу логирования и работы с временными метками.

Оглавление

Получение времени в Python

Для получения локального времени используется метод datetime.datetime.now() из стандартной библиотеки datetime.

Устаревание в Python 3.12+ Метод datetime.datetime.utcnow() признан устаревшим (deprecated) начиная с версии 3.12. Вместо него для UTC-времени нужно использовать datetime.datetime.now(datetime.UTC).

Для вывода времени в формате «ГГГГ-ММ-ДД ЧЧ:ММ:СС» используйте:

now.strftime("%Y-%m-%d %H:%M:%S")

Наивное и осознанное время Функция datetime.now() возвращает «наивное» время (naive datetime) без привязки к часовому поясу. Если вам нужно время с учетом часового пояса (aware datetime), используйте datetime.datetime.now(datetime.timezone.utc) или подключайте библиотеку zoneinfo (стандартная с Python 3.9).

Получение времени в языке C

Для получения текущего времени используется функция time(NULL) из стандартной библиотеки <time.h>, которая возвращает значение типа time_t.

Для преобразования time_t в читаемый формат (структуру struct tm) используется функция localtime(), а для форматирования в строку — strftime().

Пример форматирования в «ГГГГ-ММ-ДД ЧЧ:ММ:СС»:

char buf[64];
strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", tm);

Потокобезопасность в C Функция localtime() не является потокобезопасной (thread-safe). Если вы пишете многопоточное приложение на C, используйте POSIX-функцию localtime_r() или стандартную C11 localtime_s().

Компиляция и запуск кода на C

Для компиляции и запуска кода в терминале используйте следующие команды:

  • Linux/macOS: gcc filename.c -o filename && ./filename
  • Windows (при наличии MinGW/GCC): gcc filename.c -o filename.exe && filename.exe

Частые ошибки

  • Использование utcnow() в новых версиях Python. В Python 3.12 и новее этот метод устарел, что может привести к предупреждениям или ошибкам в строгом режиме.
  • Игнорирование потокобезопасности в C. Применение localtime() в многопоточных программах без использования localtime_r() или localtime_s() может вызвать гонки данных.
  • Путаница с часовыми поясами в Python. Использование «наивного» времени (naive datetime) там, где требуется точная привязка к поясу, приводит к ошибкам логики при сохранении или сравнении меток.

FAQ

Влияет ли регион или операционная система на работу кода? Нет. Стандартные библиотеки языков C и Python работают одинаково во всех операционных системах и регионах. Время берется напрямую из настроек самой ОС.

Как вывести время строго в формате «ГГГГ-ММ-ДД ЧЧ:ММ:СС»? Используйте спецификатор "%Y-%m-%d %H:%M:%S" в функции strftime как для C, так и для Python.