На этом шаге мы рассмотрим функции, позволяющие получить текущую дату и время.
Получить текущие дату и время позволяют следующие функции из модуля time:
>>> import time # Подключаем модуль time >>> time.time() # Получаем количество секунд 1496792032.296875
>>> time.gmtime (0) # Начало эпохи time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0) >>> time.gmtime () # Текущая дата и время time.struct_time(tm_year=2017, tm_mon=6, tm_mday=6, tm_hour=23, tm_min=35, tm_sec=20, tm_wday=1, tm_yday=157, tm_isdst=0) >> time.gmtime (1428057929.0) # Дата 03-04-2015 time.struct_time(tm_year=2015, tm_mon=4, tm_mday=3, tm_hour=10, tm_min=45, tm_sec=29, tm_wday=4, tm_yday=93, tm_isdst=0)
Получить значение конкретного атрибута можно, указав его название или индекс внутри объекта:
>> d = time.gmtime () >>> d.tm_year, d[0] (2017, 2017) >>> tuple (d) # Преобразование в кортеж (2017, 6, 6, 23, 36, 25, 1, 157, 0)
>> time.localtime() # Текущая дата и время time.struct_time(tm_year=2017, tm_mon=6, tm_mday=7, tm_hour=5, tm_min=39, tm_sec=38, tm_wday=2, tm_yday=158, tm_isdst=0) >>> time.localtime (1428057929.0) # Дата 03-04-2015 time.struct_time(tm_year=2015, tm_mon=4, tm_mday=3, tm_hour=16, tm_min=45, tm_sec=29, tm_wday=4, tm_yday=93, tm_isdst=0)
>>> d = time.localtime (1428057929.0) >>> time.mktime (d) 1428057929.0 >>> tuple (time.localtime (1428057929.0) ) (2015, 4, 3, 16, 45, 29, 4, 93, 0) >>> time.mktime( (2015, 4, 3, 13, 45, 29, 4, 93, 0) ) 1428057929.0 >>> time.mktime( (1940, 0, 31, 5, 23, 43, 5, 31, 0) ) Traceback (most recent call last): File "<pyshell#17>", line 1, in <module> time.mktime( (1940, 0, 31, 5, 23, 43, 5, 31, 0) ) OverflowError: mktime argument out of range
Объект struct_time, возвращаемый функциями gmtime() и localtime(), содержит следующие атрибуты (указаны пары вида "имя атрибута - индекс - описание"):
Выведем текущие дату и время таким образом, чтобы день недели и месяц были написаны по-русски.
# -*- coding: utf-8 -*- import time # Подключаем модуль time d = [ "понедельник", "вторник", "среда", "четверг", "пятница", "суббота", "воскресенье" ] m = [ "", "января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря" ] t = time.localtime() # Получаем текущее время print( "Сегодня:\n%s %s %s %s %02d:%02d:%02d\n%02d.%02d.%02d" % ( d[t[6]], t[2], m[t[1]], t[0], t[3], t[4], t[5], t[2], t[1], t[0] ) ) input()
Примерный результат выполнения:
Рис.1. Результат выполнения программы
На следующем шаге мы рассмотрим форматирование даты и времени.