На этом шаге мы рассмотрим назначение и основные компоненты этого класса.
Класс datetime из модуля datetime позволяет выполнять операции над комбинацией даты и времени. Конструктор класса имеет следующий формат:
datetime(<Год>, <Месяц>, <День>[, hour][, minute][, second] [, microsecond][, tzinfo])
Первые три параметра являются обязательными. Остальные значения можно указывать через запятую в порядке следования параметров или присвоить значение названию параметра. В параметрах можно указать следующий диапазон значений:
Если значения выходят за диапазон, возбуждается исключение ValueError. Примеры:
>> import datetime >> datetime.datetime (2017, 10, 27) datetime.datetime(2017, 10, 27, 0, 0) >> datetime.datetime (2017, 10, 27, hour=12, minute=55) datetime.datetime(2017, 10, 27, 12, 55) >> datetime.datetime (2017, 32, 20) Traceback (most recent call last): File "<pyshell#3>", line 1, in <module> datetime.datetime (2017, 32, 20) ValueError: month must be in 1..12 >> d = datetime.datetime (2017, 10, 27, 16, 1, 5) >> repr(d), str(d) ('datetime.datetime(2017, 10, 27, 16, 1, 5)', '2017-10-27 16:01:05')
Для создания экземпляра класса можно также воспользоваться следующими методами:
>> datetime.datetime.today ()
datetime.datetime(2017, 10, 27, 5, 46, 24)
>> datetime.datetime.now()
datetime.datetime(2017, 10, 27, 5, 35, 34, 671875)
>> datetime.datetime.utcnow ()
datetime.datetime(2017, 10, 26, 23, 35, 46, 421875)
>> import datetime, time >> datetime.datetime.fromtimestamp ( time.time () ) datetime.datetime(2017, 10, 27, 5, 36, 3, 609375) >> datetime.datetime.fromtimestamp (1421579037.0) datetime.datetime(2015, 1, 18, 17, 3, 57)
>> datetime.datetime.utcfromtimestamp ( time.time () ) datetime.datetime(2017, 10, 26, 23, 36, 27, 359375) >> datetime.datetime.utcfromtimestamp (1421579037.0) datetime.datetime(2015, 1, 18, 11, 3, 57)
>> datetime.datetime.max.toordinal () 3652059 >> datetime.datetime.fromordinal (3652059) datetime.datetime(9999, 12, 31, 0, 0) >> datetime.datetime.fromordinal (1) datetime.datetime(1, 1, 1, 0, 0)
>> d = datetime.date (2017, 10, 27) # Экземпляр класса date >> t = datetime.time (16, 7, 22) # Экземпляр класса time >> datetime.datetime.combine (d, t) datetime.datetime(2017, 10, 27, 16, 7, 22)
>> datetime.datetime.strptime ("27.10.2017", "%d.%m.%Y") datetime.datetime(2017, 10, 27, 0, 0) >> datetime.datetime.strptime ("27.10.2017", "%d-%m-%Y") Traceback (most recent call last): File "<pyshell#24>", line 1, in <module> datetime.datetime.strptime("27.10.2017", "%d-%m-%Y") File "C:\Python34\lib\_strptime.py", line 507, in _strptime_datetime tt, fraction = _strptime(data_string, format) File "C:\Python34\lib\_strptime.py", line 344, in _strptime (data_string, format)) ValueError: time data '27.10.2017' does not match format '%d-%m-%Y'
Получить результат можно с помощью следующих атрибутов:
Примеры:
>> d = datetime.datetime (2017, 10, 27, 16, 7, 22) >> d.year, d.month, d.day (2017, 10, 27) >> d.hour, d.minute, d.second, d.microsecond (16, 7, 22, 0)
На следующем шаге мы рассмотрим основные методы этого класса.