Home

Tags

Python datetime

2010-08-14 python datetime

Пример работы с datetime

# coding:utf8

import time
from datetime import datetime, timedelta, date, time as dt_time

'Получить текущее время и дату'
print datetime.now()
#> 2010-08-14 02:58:15.057495

d = datetime.today()
print d
#> 2010-08-14 02:58:15.057538

'Форматированный вывод'
print d.strftime('%y-%m-%d %H:%M:%S')
#> 10-08-14 02:58:15

'Сдвинуть время'
print d + timedelta(days=1, hours=1)
#> 2010-08-15 03:58:15.057538

'Конвертировать время POSIX в datetime'
print datetime.fromtimestamp(time.time())
#> 2010-08-14 02:58:15.057613

'Изменить атрибут'
print d.replace(year=2011,hour=11)
#> 2011-08-14 11:58:15.057538
#replace(year, month, day, hour, minute, second, microsecond, tzinfo)

'Получить кортеж'
print d.timetuple()
#> time.struct_time(tm_year=2010, tm_mon=8, tm_mday=14, tm_hour=2,
#> tm_min=58, tm_sec=15, tm_wday=5, tm_yday=226, tm_isdst=-1)

'Получиь день недели, 0 - Пн, 6 - Вс'
print d.weekday()
#> 5

'Получить дату'
print d.date()
#> 2010-08-14

'Получить время'
print d.timetz()
#> 02:58:15.057538

'Сложить дату и время'
print d.combine(d.date(), d.timetz())
#> 2010-08-14 02:58:15.057538

'Конвертировать datetime -> posix time'
d = datetime.now()
print time.mktime(d.timetuple())
#> 1367824592.0

'Конвертировать date -> datetime'
d = date.today()
print datetime.combine(d, dt_time.min)
#> 2013-05-06 00:00:00

Классы date и time содержат часть аналогичных методов, но работают только с датой и временем соответственно.
timedelta - является периодом и не привязан к конкретному времени, он являеться результатом вычитания 2- дат: timedelta = datetime1 - datetime2


Перевод timestamp в datetime и обратно, UTC
# timestamp -> datetime
datetime.utcfromtimestamp(d)

# datetime -> timestamp
calendar.timegm(d.utctimetuple())

# Текущее время в UTC
datetime.utcnow()