и посмотреть медиа
Код на салфетке - Python кодинг
и посмотреть медиа
Канал о программировании на Python и других языках. Простые объяснения и коды.
Канал о программировании на Python и других языках. Простые объяснения и коды.
AI бот для озвучки текста и клонирования голоса в Telegram. Создавай аудио с помощью нейросети быстро и просто.
Ресурс для интересующихся программированием. Фокус на Python, но охватывает и другие темы. Простые примеры и разборы.
Знаете ли вы, что в UTC реально существует секунда `23:59:60` – и Python умеет ее парсить? Обычно в минуте 60 секунд: от 00 до 59. Но иногда у UTC появляется дополнительная секунда – 23:59:60. Это leap second, или високосная секунда. Эта секунда здесь потому, что Земля не вращается идеально ровно. Атомные часы идут стабильно, а вот длина суток чуть плавает. Чтобы UTC не уползало от астрономического времени UT1, в UTC иногда вставляют дополнительную секунду. И Python про leap second знает: from time import strptime t = strptime("2016-12-31 23:59:60", "%Y-%m-%d %H:%M:%S") print(t.tm_sec) # 60 strptime() спокойно принимает 60 в секундах, потому что стандарт времени это допускает. В POSIX tm_sec вообще определен как диапазон 0-60. Последняя leap second была 31 декабря 2016 года – конец суток тогда выглядел так: 23:59:58 23:59:59 23:59:60 00:00:00 То есть в той минуте прошла 61 секунда вместо обычных 60. Но вот что еще интересно: большинство Unix-систем никогда не покажут вам 23:59:60. Причина в POSIX time. Тип time_t хранит количество секунд с 1970 года – но leap seconds в этот счетчик не входят. Для POSIX-времени такой секунды просто не существует. import time print(time.time()) print(time.gmtime()) #1779213515.548919 #time.struct_time(tm_year=2026, tm_mon=5, tm_mday=19, tm_hour=17, tm_min=58, tm_sec=35, tm_wday=1, tm_yday=139, tm_isdst=0) Из-за этого time.time() никогда не вернет timestamp для 23:59:60, а gmtime() практически никогда не покажет tm_sec == 60, даже если leap second реально была. Операционные системы и NTP-серверы обходят эту проблему разными способами. Самый простой вариант – прямо вставить дополнительную секунду. Другой вариант – вставить лишнюю секунду не сразу, а заставить часы идти чуть медленнее или чуть быстрее в течение времени, чтобы избежать резкого скачка и одновременно сгладить разрыв. Google Leap Smear например распределяет эту секунду на 24 часа. Новых leap seconds не было с 2016 года. А в 2022 Генеральная конференция по мерам и весам (CGPM) официально решила отказаться от leap seconds к 2035 году – UTC перестанет корректироваться дополнительными секундами. А вот на замену пока ничего не утвердили, но как вариант предлагают раз в 100 лет делать leap minute. Код на салфетке x Кусочки кода
Открыть канал и посмотреть медиаТолько зарегистрированные пользователи могут делиться своим мнением.
Станьте первым, кто поделится своим впечатлением об этом ресурсе!