Содержание
Использование модуля Datetime
Вы также можете использовать метод timedelta в модуле DateTime для преобразования секунд в предпочтительный формат.
Он отображает время в днях, часах, минутах и секундах, прошедших с эпохи.
Код Python для преобразования секунд в предпочтительный формат с использованием модуля Datetime выглядит следующим образом:
import datetime n= 10000000 time_format = str(datetime.timedelta(seconds = n)) print("Time in preferred format :-",time_format)
Вывод :
Time in preferred format :- 115 days, 17:46:40
Мегабиты, мегабайты и реальные скорости
Размер данных принято измерять в байтах. Например, HD-фильм весит от 700 мегабайт (мегов) до 1,4 гигабайта (гига), а Full HD — от 4 до 14 гигабайт.
Скорость передачи данных принято указывать в битах (не байтах!) в секунду, и иногда это вызывает недопонимание.
Байт ≠ бит.
1 байт = 8 бит.
1 мегабайт = 8 мегабит.
1 мегабайт в секунду = 8 мегабит в секунду.
Если пользователь не отличает байты и биты, то легко может их перепутать или принять за одно и то же. В этом случае он вычислит примерное время скачивания HD-фильма через торрент примерно так:
- Фильм весит 1 400 «мегов».
- Скорость интернета 30 «мегов» в секунду.
- Фильм скачается за 1 400 / 30 = 46,6 секунды.
На самом деле скорость интернета 30 мегабит в секунду = 3,75 мегабайта в секунду. Соответственно, 1 400 мегабайт нужно делить не на 30, а на 3,75. В таком случае время скачивания составит 1 400 / 3,75 = 373 секунды.
На практике скорость будет ещё ниже, потому что интернет-провайдеры указывают скорость «до», то есть максимально возможную, а не рабочую. Кроме того, свой вклад вносят помехи, особенно при передаче по Wi-Fi, загруженность сети, а также ограничения и особенности пользовательского оборудования и оборудования поставщика услуг. Проверить свою скорость можно с помощью специальных сервисов, а увеличить её — с помощью этих советов.
Часто горлышком становится ресурс, с которого вы что-то качаете. Например, скорость вашего интернета — 100 мегабит в секунду, а сайт отдаёт данные со скоростью 10 мегабит в секунду. В таком случае скачивание будет происходить со скоростью не более 10 мегабит в секунду, и с этим ничего не поделать.
Использование модуля времени
Теперь давайте посмотрим на встроенный модуль, который позволяет нам конвертировать секунды в наш предпочтительный формат в одной строке кода.
Модуль времени определяет эпоху как 1 января 1970 года, 00:00:00 (UTC) в системах Unix (зависит от системы). Эпоха – это, по сути, начало времени для компьютера. Думайте об этом как о floor 0. Всякий раз, когда мы конвертируем секунды с помощью модуля времени, эта эпоха используется как точка отсчета.
Чтобы вывести эпоху в вашей системе, используйте следующую строку кода:
time.gmtime(0)
Чтобы преобразовать секунды в предпочтительный формат, используйте следующую строку кода:
time.strftime("%H:%M:%S", time.gmtime(n))
Эта строка принимает время в секундах как «n», а затем позволяет отдельно выводить часы, минуты и секунды.
Полный код Python выглядит следующим образом:
import time n=10000 time_format = time.strftime("%H:%M:%S", time.gmtime(n)) print("Time in preferred format :-",time_format)
Вывод :
Time in preferred format :- 02:46:40
Модуль времени также дает вам возможность отображать дополнительную информацию, такую как день, месяц и год.
% а | Отображать сокращенное название дня недели. |
% А | Отображать полное название дня недели. |
% b | Отображать сокращенное название месяца. |
% B | Отображать полное название месяца. |
% c | Отобразить соответствующее представление даты и времени. |
% d | Отображать день месяца как десятичное число [01,31]. |
Попробуем использовать% a и % b.
import time n=100000000000 time_format = time.strftime("Day: %a, Time: %H:%M:%S, Month: %b", time.gmtime(n)) print("Time in preferred format :-",time_format)
Вывод :
Time in preferred format :- Day: Wed, Time: 09:46:40, Month: Nov
Как получить значение секунд?
Чтобы получить значение секунд, нам снова нужно разделить общее количество секунд на количество секунд в одной минуте (60) и взять остаток.
Математически это делается следующим образом:
seconds = seconds % 60
Это даст второе значение, которое нам нужно для нашего предпочтительного формата.