Учебник Python/Дата и время

Материал из Викиучебника — открытых книг для открытого мира
Перейти к навигации Перейти к поиску
Учебник Python


редактировать содержание


datetime[править]

подключение:

from datetime import datetime

получить текущее время

now = datetime.now()

сформировать строку:

datetime.strftime(datetime.now(), "%Y.%m.%d %H:%M:%S")

Чтение из строки вариант №1, попроще

>>> import dateutil.parser
>>> from dateutil.tz import tzoffset, tzlocal
>>> dateutil.parser.parse('Thu, 26 Jun 2014 05:07:27 +0400').astimezone(tzoffset(None, 3*3600))
datetime.datetime(2014, 6, 26, 4, 7, 27, tzinfo=tzoffset(None, 10800)

с определением локальной таймзоны:

>>> dateutil.parser.parse('Thu, 26 Jun 2014 05:07:27 -0400').astimezone(tzlocal())
datetime.datetime(2014, 6, 26, 13, 7, 27, tzinfo=tzlocal())

вариант №2 прочитать из строки (не работает в python 2.4.3, там надо использовать модуль time):

datetime.strptime( "2009", "%Y" )
datetime.strptime( "2009-11-12 23:18:53", "%Y-%m-%d %H:%M:%S" )

Операции сложения (timedelta)[править]

>>> from datetime import datetime, timedelta
>>> a = datetime(2010, 12, 12)
>>> b = timedelta(days=1, hours=2, seconds=15)
>>> str(a)
'2010-12-12 00:00:00'
>>> str(a+b)
'2010-12-13 02:00:15'


time[править]

Тип для работы с unixtime.

>>> print time.time()
1296734473.66
>>> time.localtime(1360250344)
time.struct_time(tm_year=2013, tm_mon=2, tm_mday=7, tm_hour=19, tm_min=19, tm_sec=4, tm_wday=3, tm_yday=38, tm_isdst=0)

Конвертировать datetime в time:

print time.mktime(datetime.now().timetuple())

Timestamp → str

time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(1360250344))