Объект datetime также имеет метод isoformat():
>>>> some_day.isoformat()
>'2014-01-02T03:04:05.000006'
Буква T, которая находится в середине, разделяет дату и время.
Объект datetime имеет метод now(), с помощью которого вы можете получить текущие дату и время:
>>>> from datetime import datetime
>>>> now = datetime.now()
>>>> now
>datetime.datetime(2014, 2, 2, 23, 15, 34, 694988)
>14
>>>> now.month
>2
>>>> now.day
>2
>>>> now.hour
>23
>>>> now.minute
>15
>>>> now.second
>34
>>>> now.microsecond
>694988
Вы можете объединить объекты date и time в объект datetime с помощью метода combine():
>>>> from datetime import datetime, time, date
>>>> noon = time(12)
>>>> this_day = date.today()
>>>> noon_today = datetime.combine(this_day, noon)
>>>> noon_today
>datetime.datetime(2014, 2, 2, 12, 0)
Вы можете получить объекты date и time из объекта datetime с помощью методов date() и time():
>>>> noon_today.date()
>datetime.date(2014, 2, 2)
>>>> noon_today.time()
>datetime.time(12, 0)
В Python имеется модуль datetime, имеющий объект time, а также отдельный модуль time, что создает путаницу. Дальше — больше, в модуле time имеется функция с именем — что вы подумали? — time().
Одним из способов представления абсолютного времени является подсчет количества секунд, прошедших с некоторой стартовой точки. В Unix используется количество секунд, прошедших с полуночи 1 января 1970 года (примерно в это время появилась система Unix). Это значение часто называют epoch, и зачастую оно является простейшим способом обмениваться датой и временем между системами.
Функция time() модуля time возвращает текущее время как значение epoch:
>>>> import time
>>>> now = time.time()
>>>> now
>1391488263.664645
Если выполнить подсчеты, вы увидите, что прошло более миллиарда секунд после наступления нового, 1970 года. И куда ушло время?
Вы можете преобразовать значение epoch в строку с помощью функции ctime():
>>>> time.ctime(now)
>'Mon Feb··3 22:31:03 2014'
В следующем разделе вы увидите, как создавать более приятные глазу форматы для даты и времени.
Значения epoch полезны для обмена датой и временем с разными системами вроде JavaScript. Однако иногда вам нужно получить именно значения дней, часов и т. д., объект time предоставляет их как объекты struct_time. Функция localtime() предоставляет время в вашем текущем часовом поясе, а функция gmtime() — в UTC:
>>>> time.localtime(now)
>time.struct_time(tm_year=2014, tm_mon=2, tm_mday=3, tm_hour=22, tm_min=31,
>tm_sec=3, tm_wday=0, tm_yday=34, tm_isdst=0)
>>>> time.gmtime(now)
>time.struct_time(tm_year=2014, tm_mon=2, tm_mday=4, tm_hour=4, tm_min=31,