- Модуль time в Python
- Python time.time()
- Python time.ctime()
- Python time.sleep()
- Класс time.struct_time
- Python time.localtime()
- Python time.gmtime()
- Python time.mktime()
- Python time.asctime()
- Python time.strftime()
- Python time.strptime()
- Работа с модулем времени(time) в Python
- Функции модуля времени Python
- 1 метод time.time()
- 2 метод time.sleep()
- 3 метод time.localtime()
- 4 метод time.ctime()
- 5 Метод time.mktime()
- 6 Метод time.gmtime()
- 7 метод time.strptime()
- Как управлять датой и временем в Python?
- Как получить текущую дату и время в Python?
- Как получить текущую дату?
- Что внутри datetime?
- Класс datetime.date
- Объект Date для представления даты
- Пример: Получить текущую дату
- Пример: Получить дату из отметки времени
- Пример: Вывести сегодняшний год, месяц и день
- datetime.time
- Объект времени для представления времени
- Вывод часа, минуты, секунды и микросекунды
- datetime.datetime
- Объект datetime
- Напечатать год, месяц, час, минуту и отметку времени
- datetime.timedelta
- Разница между двумя датами и временем
- Разница между двумя объектами timedelta
- Печать отрицательного объекта timedelta
- Продолжительность времени в секундах
- Дата и время в формате Python
- Метод strftime() ‒ объект datetime для строки
- Форматирование даты с помощью strftime()
- Python strptime() ‒ строка для даты и времени
- strptime()
- Обработка часового пояса
- Пишем список дел на Python 3 для Android через QPython3 и SL4A
- Полный листинг
Модуль time в Python
В Python есть модуль time , который используется для решения задач, связанных со временем. Для использования определенных в нем функций необходимо сначала его импортировать:
Дальше перечислены самые распространенные функции, связанные со временем.
Python time.time()
Функция time() возвращает число секунд, прошедших с начала эпохи. Для операционных систем Unix 1 января 1970, 00:00:00 (UTC) — начало эпохи (момент, с которого время пошло).
Python time.ctime()
Функция time.ctime() принимает в качестве аргумента количество секунд, прошедших с начала эпохи, и возвращает строку, представляющую собой местное время.
Если запустить программу, то вывод будет выглядеть так:
Python time.sleep()
Функция sleep() откладывает исполнение текущего потока на данное количество секунд.
Прежде чем переходить к другим функциям, связанных со временем, нужно вкратце разобраться с классом time.struct_time .
Класс time.struct_time
Некоторые функции в модуле time , такие как gmtime() , asctime() и другие, принимают объект time.struct_time в качестве аргумента или возвращают его.
Вот пример объекта time.struct_time .
Индекс | Атрибут | Значения |
---|---|---|
0 | tm_year | 0000, …, 2019, …, 9999 |
1 | tm_mon | 1, 2, …, 12 |
2 | tm_mday | 1, 2, …, 31 |
3 | tm_hour | 0, 1, …, 23 |
4 | tm_min | 0, 1, …, 59 |
5 | tm_sec | 0, 1, …, 61 |
6 | tm_wday | 0, 1, …, 6; Monday is 0 |
7 | tm_yday | 1, 2, …, 366 |
8 | tm_isdst | 0, 1 or -1 |
К значениям (элементам) объекта time.struct_time доступ можно получить как с помощью индексов, так и через атрибуты.
Python time.localtime()
Функция localtime() принимает в качестве аргумента количество секунд, прошедших с начала эпохи, и возвращает stuct_time в локальном времени.
Вывод этой программы будет следующим:
Если localtime() передан аргумент None , то вернется значение из time() .
Python time.gmtime()
Функция gmtime() принимает в качестве аргумента количество секунд, прошедших с начала эпохи и возвращает struct_time в UTC.
Вывод этой программы будет следующим:
Если gmtime() передан аргумент None , то вернется значение time() .
Python time.mktime()
Функция mktime() принимает struct_time (или кортеж, содержащий 9 значений, относящихся к struct_time ) в качестве аргумента и возвращает количество секунд, прошедших с начала эпохи, в местном времени. Это функция, обратная localtime() .
Следующий пример показывает, как связаны mktime() и localtime() .
Вывод будет следующий:
Python time.asctime()
Функция asctime() принимает struct_time (или кортеж, содержащий 9 значений, относящихся к struct_time ) в качестве аргумента и возвращает строку, представляющую собой дату.
Python time.strftime()
Функция strftime принимает stuct_time (или соответствующий кортеж) в качестве аргумента и возвращает строку с датой в зависимости от использованного формата. Например:
Вывод будет следующий:
Здесь %Y , %m , %d , %H и другие — элементы форматирования.
- %Y — год [0001,…, 2019, 2020,…, 9999]
- %m — месяц [01, 02, …, 11, 12]
- %d — день [01, 02, …, 30, 31]
- %H — час [00, 01, …, 22, 23
- %M — минута [00, 01, …, 58, 59]
- %S — секунда [00, 01, …, 58, 61]
Python time.strptime()
Функция strptime() делает разбор строки python, в которой упоминается время и возвращает struct_time .
Источник
Работа с модулем времени(time) в Python
Модуль времени Python предоставляет нам различные функции для внедрения системного времени в наше приложение с помощью сценариев.
Чтобы начать работу с модулем времени, нам нужно импортировать его в наш скрипт python, используя следующую инструкцию:
При выполнении операций с данными, относящимися к метке времени, необходимо иметь отправную точку, с которой мы можем начать выполнять операции с ними.
Эпоха — это начальная точка времени, от которой следует отсчитывать время.
Функции модуля времени Python
Модуль времени Python предлагает хороший набор функций для работы с отметкой времени.
Ниже приведены наиболее часто используемые функции:
- time.time()
- time.sleep()
- time.ctime()
- time.localtime()
- time.mktime()
- time.gmtime()
- time.strptime()
- time.strftime()
- time.asctime()
1 метод time.time()
В модуле времени Python есть метод time.time() который дает секунды текущего местного времени.
2 метод time.sleep()
Метод time.sleep() обеспечивает интервал времени или задержку между выполнением текущих процессов или потоков.
В приведенном выше фрагменте кода, когда мы пытаемся выполнить приведенный выше код, можно легко наблюдать задержку, пока операторы вывода отображаются на консоли.
3 метод time.localtime()
Модуль времени Python содержит класс struct_time, доступ к которому можно получить с помощью различных функций. Это помогает нам получить доступ к различным полям местной метки времени, таким как год, час, секунды и т. д.
Класс struct_time состоит из следующих атрибутов:
- tm_year: возвращает год по местному времени.
- tm_hour: возвращает час конкретного местного времени.
- tm_min: возвращает значение минут определенного местного времени.
- tm_sec: возвращает значение секунд определенного местного времени.
- tm_mon: возвращает месяц по местному времени.
- tm_mday: возвращает дату месяца по местному времени.
- tm_wday: возвращает значение дней недели, т.е. с 0 понедельника по 6 воскресенье.
- tm_yday: возвращает номер конкретного дня в диапазоне от 1 до 366.
Функция time.localtime() запускает функцию time.time() в серверной части и возвращает детали текущего времени в формате класса struct_time по местному времени.
Мы также можем передать количество секунд с начала эпохи в качестве аргумента функции.
4 метод time.ctime()
Метод time.ctime() принимает значение секунд с начала или результат функции time() в качестве аргумента и возвращает строковое значение, представляющее текущее местное время.
5 Метод time.mktime()
Метод time.mktime() является обратным методу time.localtime().
Он принимает struct_time (все кортежи класса struct_time) в качестве аргумента и возвращает время в секундах, которое прошло с начала.
В приведенном выше примере мы использовали метод locatime() для получения кортежей класса struct_time и передали его методу mktime().
6 Метод time.gmtime()
Функция time.gmtime() запускает функцию time.time() в серверной части и возвращает детали текущего времени в формате класса struct_time в UTC.
7 метод time.strptime()
Метод time.strptime() принимает строку, представляющую время, и возвращает сведения о времени в формате struct_time.
- % m — месяц
- % d — день
- % M — месяц
- % S — второй
- % H — час
- % Y — год
Источник
Как управлять датой и временем в Python?
В этой статье вы научитесь управлять датой и временем в Python с помощью примеров.
В Python есть модуль datetime для работы с датой и временем. Прежде чем копать глубже, давайте создадим несколько простых программ, связанных с датой и временем.
Как получить текущую дату и время в Python?
Простая программа с помощью которой можно получить текущую дату и время в Python:
Когда вы запустите программу, результат будет примерно таким:
Здесь мы импортировали модуль datetime, используя оператор import datetime.
Один из классов, определенных в модуле datetime, ‒ это класс datetime. Затем мы использовали метод now() для создания объекта datetime, содержащего текущие локальные дату и время.
Как получить текущую дату?
Когда вы запустите программу, результат будет примерно таким:
В этой программе мы использовали метод today(), определенный в классе даты, чтобы получить объект даты, содержащий текущую локальную дату.
Что внутри datetime?
Мы можем использовать функцию dir(), чтобы получить список, содержащий все атрибуты модуля.
Когда вы запустите программу, вывод будет:
Обычно используемые классы в модуле datetime:
- дата класса;
- класс времени;
- datetime класс;
- класс timedelta.
Класс datetime.date
Вы можете создавать экземпляры объектов даты из класса даты. Объект представляет собой дату (год, месяц и день).
Объект Date для представления даты
Когда вы запустите программу, вывод будет:
В приведенном выше примере date() является конструктором класса даты. Конструктор принимает три аргумента: год, месяц и день.
Переменная a ‒ объект даты.
Мы можем импортировать только класс даты из модуля datetime. Вот как:
Пример: Получить текущую дату
Вы можете создать объект даты, содержащий текущую дату, используя метод класса с именем today(). Вот как:
Пример: Получить дату из отметки времени
Мы также можем создавать объекты даты из отметки времени. Отметка времени Unix ‒ это количество секунд между определенной датой и 1 января 1970 года по всемирному координированному времени. Вы можете преобразовать метку времени в дату, используя метод fromtimestamp().
Когда вы запустите программу, вывод будет:
Пример: Вывести сегодняшний год, месяц и день
Мы можем легко получить год, месяц, день, день недели и т.д. из объекта даты. Вот как:
datetime.time
Объект времени, созданный из класса времени, представляет местное время.
Объект времени для представления времени
Когда вы запустите программу, вывод будет:
Вывод часа, минуты, секунды и микросекунды
После создания объекта времени вы можете легко распечатать его атрибуты, такие как час , минута и т.д.
Когда вы запустите пример, результат будет:
Обратите внимание, что мы не передали аргумент микросекунды. Следовательно, печатается его значение по умолчанию 0.
datetime.datetime
В модуле datetime есть класс с именем dateclass, который может содержать информацию как из объектов даты, так и времени.
Объект datetime
Когда вы запустите программу, вывод будет:
Первые три аргумента год, месяц и день в конструкторе datetime() являются обязательными.
Напечатать год, месяц, час, минуту и отметку времени
Когда вы запустите программу, вывод будет:
datetime.timedelta
Объект timedelta представляет разницу между двумя датами или временем.
Разница между двумя датами и временем
Когда вы запустите программу, вывод будет:
Обратите внимание, что и t3, и t6 относятся к типу .
Разница между двумя объектами timedelta
Когда вы запустите программу, вывод будет:
Здесь мы создали два объекта timedelta t1 и t2 , и их разница отображается на экране.
Печать отрицательного объекта timedelta
Когда вы запустите программу, вывод будет:
Продолжительность времени в секундах
Вы можете получить общее количество секунд в объекте timedelta, используя метод total_seconds().
Когда вы запустите программу, вывод будет:
Вы также можете найти сумму двух дат и времени, используя оператор +. Кроме того, вы можете умножать и делить объект timedelta на целые числа и числа с плавающей запятой.
Дата и время в формате Python
Дата и время могут быть разными в разных местах, организациях и т.д. в США чаще используется мм/дд/гггг, а в Великобритании ‒ дд/мм/гггг.
Для этого в Python есть методы strftime() и strptime().
Метод strftime() ‒ объект datetime для строки
Метод определяется в классах date, datetime и time. Метод создает форматированную строку из заданного объекта даты, даты, времени или времени.
Форматирование даты с помощью strftime()
Когда вы запустите программу, результат будет примерно таким:
Здесь % Y,% m,% d,% H и т.д. являются кодами формата. Метод strftime() принимает один или несколько кодов формата и возвращает на его основе отформатированную строку.
В приведенной выше программе t s1 и s2 -‒ это строки:
- % Y — год [0001, …, 2018, 2019, …, 9999]
- % m — месяц [01, 02, …, 11, 12]
- % d — день [01, 02, …, 30, 31]
- % H — час [00, 01, …, 22, 23
- % M — минута [00, 01, …, 58, 59]
- % S — секунда [00, 01, …, 58, 59]
Python strptime() ‒ строка для даты и времени
Метод создает объект datetime из заданной строки (представляющей дату и время).
strptime()
Когда вы запустите программу, вывод будет:
Метод принимает два аргумента:
- Строка, представляющая дату и время.
- Код формата, эквивалентный первому аргументу.
Кстати, коды формата% d,% B и% Y используются для дня, месяца (полное имя) и года соответственно.
Обработка часового пояса
Предположим, вы работаете над проектом и вам нужно отображать дату и время в соответствии с их часовым поясом. Вместо того, чтобы пытаться самостоятельно обрабатывать часовой пояс, мы предлагаем вам использовать сторонний модуль pytZ.
Когда вы запустите программу, результат будет примерно таким:
Здесь datetime_NY и datetime_London ‒ это объекты, содержащие текущую дату и время соответствующего часового пояса.
Источник
Пишем список дел на Python 3 для Android через QPython3 и SL4A
Движок QPython (и QPython 3) для Android – вещь по-прежнему плохо изученная, и особенно что касается его встроенной библиотеки Scripting Layer For Android (SL4A), она же androidhelper. Эту библиотеку написали несколько сотрудников Google по принципу 20% свободного времени, снабдили ее спартанской документацией, которую почти невозможно найти, и отправили в свободное плавание. Я искал информацию об SL4A по крупицам, но со временем нашел практически все, что мне нужно.
SL4A позволяет задействовать практически все возможности консольного Python 3 вплоть до библиотек типа matplotlib, при этом используются стандартные диалоги Android: ввод текста, списки, вопросы, радиокнопки, выбор даты и т.д. Программа не будет поражать красотой, но многие задачи решать сможет. Самое главное, что мы получим доступ к различным функциям устройства. Например, можно:
- делать телефонные звонки
- посылать SMS
- менять громкость
- включать Wi-Fi и Bluetooth
- открывать веб-страницы
- открывать сторонние приложения
- делать фото- и видеосъемку камерой
- извлекать контакты из контактной книги
- посылать системные оповещения
- определять GPS-координаты устройства
- определять заряд батареи
- считывать данные SIM-карты
- воспроизводить медиафайлы
- работать с буфером обмена
- генерировать голосовые сообщения
- экспортировать данные на внешние активности (share)
- открывать локальные html-страницы
- и др.
В нашем примере мы напишем простейший список задач. Мы сможем создавать и удалять задачи, а также экспортировать их. Программа будет вибрировать и разговаривать. Мы будем пользоваться тремя видами диалогов: список, текстовый ввод и вопрос «да/нет». На все про все нам хватит менее 100 строк кода. Интерфейс сделаем английским ради универсальности (и GitHub).
Вот весь код и комментарии к наиболее существенным моментам.
Создаем объект droid класса Android(), который будет отвечать за взаимодействие с SL4A.
Переменная path будет содержать абсолютное имя файла, в котором хранятся задачи. Почему так длинно? Дело в том, что SL4A не может работать с локальным путем, поэтому приходится определять абсолютный, а абсолютный может отличаться на разных Android-устройствах. Мы обойдем эту проблему путем определения местоположения папки Download с помощью метода droid.environment() . Затем мы отсекаем Download и добавляем путь Qpython/Scripts3 (он всегда одинаков) плюс имя файла.
Определяем функцию, отвечающую за вывод списка задач. Это делается с помощью метода droid.dialogCreateAlert() . Затем ряд вспомогательных методов выводят собственно пункты, создают кнопки и получают результат от пользователя. Названиями двух кнопок служат Unicode-символы (об этом чуть ниже). Для упрощения мы упакуем все эти методы в одну простую функцию, которой будем передавать список задач. В более сложных скриптах можно передавать больше аргументов: заголовок, названия кнопок и т.д.
Определяем функцию, отвечающую за создание новой задачи. Принцип аналогичен. В аргументе default мы передаем ей текст, который по умолчанию появляется в строке ввода (пустой при «»). В более сложных программах можно передавать различные подписи и кнопки.
Эта функция будет задавать вопрос пользователю, чтобы получить ответ да или нет. Мы передаем ей текст вопроса.
Создаем цикл (чтобы скрипт не вышел после первого же действия) и первым делом читаем файл задач и загружаем его в список tasks . Если файла нет, создаем пустой список.
Выводим список задач. Когда пользователь делает какой-то выбор, метод dialog_list() возвращает это действие в виде значения, которое мы присваиваем переменной response .
Начинаем обрабатывать действие пользователя. Поскольку метод droid.dialogGetResponse() , который мы используем в функции списка, выдает довольно сложную структуру в виде словаря, его придется препарировать не самым очевидным способом. В данном случае по простому клику на пункт списка он удаляется – мы выполнили дело. Сообщим об этом во всплывающем сообщении и одновременно сделаем (чисто забавы ради) виброзвонок на 200 миллисекунд и сгенерируем голосовую фразу Дело сделано! .
По нажатию на среднюю (нейтральную) кнопку с ножницами можно разом удалить все дела. При этом будет выведен подтверждающий вопрос.
Здесь мы создаем новую задачу. Обратим внимание на переменную cancel – ее выдает droid.dialogGetResponse() в случае клика вне диалога (на пустую область экрана). Чтобы корректно обработать такую ситуацию, мы ввели дополнительное условие. По средней кнопке ( neutral ) поле ввода будет очищаться. При positive мы создаем новый пункт списка и выходим из цикла. Если нажать на самую правую кнопку, сработает else и мы просто выйдем из цикла, ничего не сохранив (хотя формально это будет значение negative в input[«which»] ). Последняя строка означает, что пользователь нажал на Exit . Тогда мы устанавливаем флаг exit в True .
После каждой обработки списка сохраняем список задач в файл.
Если пользователь решил выйти, мы выходим из главного цикла while .
В самом конце мы спрашиваем у пользователя, надо ли экспортировать все задачи куда-нибудь – на почту, в облако, в мессенджер и т.д. При положительном ответе список задач преобразуется в строку и экспортируется.
На этом всё. Программа будет выглядеть, как на скриншоте выше.
Полный листинг
Окончательный полный листинг (с комментариями на английском):
Пара замечаний. SL4A не позволяет использовать никакую графику, однако можно использовать довольно большое количество всевозможных смайлов и эмодзи как Unicode-символы. Это могут быть хоть домики, хоть собачки, хоть кошечки. В нашем примере мы использовали знак плюс ( \u2795 ), ножницы ( \u2702 ) и листок бумаги ( \ud83d\udcc3 ). C каждой новой версией Unicode их становится все больше, но этим не стоит злоупотреблять – новые смайлы не будут отображаться на более старых версиях Android.
Для запуска скриптов QPython нужно заходить в собственно QPython, но существует интересный плагин для приложения Tasker, позволяющий проделывать довольно мощные вещи с QPython-скриптами, например выводя их на рабочий стол в виде иконок или запуская по различным условиям.
Источник