воскресенье, 6 сентября 2009 г.

Узнаем текущую дату

Для получения текущей даты необходимо использовать модуль datetime. Для начала нам необходимо получить объект datetime, содержащий сегодняшнюю дату, затем с помощью метода timetuple мы получаем кортеж, содержащий значение текущего года, месяца, дня и т.д.

import datetime
import time
now = datetime.datetime.now() # получаем текущую дату
#Список дней недели
day_of_weeks = {0 : "Monday",
1 : "Tuesday",
2 : "Wednesday",
3 : "Thursday",
4 : "Friday",
5 : "Saturday",
6 : "Sunday"}
year, month, day, hour, minutes, sec, wday, yday, isdst = now.timetuple()
if month<10: month = "0%s" % month
if day<10: day = "0%s" % day
if hour<10: hour = "0%s" % hour
if minutes<10: minutes = "0%s" % minutes
if sec<10: sec = "0%s" % sec
today = "Now: {3}:{4}:{5}, {0}.{1}.{2}, {6} "\
.format(day, month, year, hour, minutes, sec,day_of_weeks[wday])
print today

Иногда бывает необходимо узнать количество секунд прошедших от начала отсчета, до текущей даты, делается это следующим образом:

sectime = int (time.mktime(now.timetuple()))

2 комментария:

  1. для форматирование дат в строку юзай http://docs.python.org/library/datetime.html#datetime.date.strftime

    и зачем timetuple?
    не проще ли
    d.year
    d.month

    и тд :)

    количество секунд ещё проще int(time.time())

    ОтветитьУдалить
  2. Я даже по этому поводу себе откатал хитрую шпору =)
    ---------------Шпора по time-------------
    import time
    print time.strftime('%a - Аббревиатура дня недели (%%a).', time.gmtime(1863126720))
    print time.strftime('%A - Полный день недели. (%%A)', time.gmtime(1863126720))
    print time.strftime('%b - Аббревиатура месяца. (%%b)', time.gmtime(1863126720))
    print time.strftime('%B - Полный месяц. (%%B)', time.gmtime(1863126720))
    print time.strftime('%c - Дата и время по локальному формату. (%%C)', time.gmtime(1863126720))
    print time.strftime('%d - День месяца [01,31]. (%%d)', time.gmtime(1863126720))
    print time.strftime('%H - Час (24) [00,23]. (%%H)', time.gmtime(1863126720))
    print time.strftime('%I - Час (12) [01,12]. (%%I)', time.gmtime(1863126720))
    print time.strftime('%j - День года [001,366] (%%j).', time.gmtime(1863126720))
    print time.strftime('%m - Месяц [01,12]. (%%m)', time.gmtime(1863126720))
    print time.strftime('%M - Минуты [00,59]. (%%M)', time.gmtime(1863126720))
    print time.strftime('%p - AM/PM. (%%p)', time.gmtime(1863126720))
    print time.strftime('%S - Секунды [00,61]. (%%S)', time.gmtime(1863126720))
    print time.strftime('%U - Неделя(Воскресенье) [00,53]. (%%U)', time.gmtime(1863126720))
    print time.strftime('%w - День недели [0(Воскресенье),6]. (%%w)', time.gmtime(1863126720))
    print time.strftime('%W - Неделя (Понедельник) [00,53]. (%%W)', time.gmtime(1863126720))
    print time.strftime('%x - Дата по локальному формату. (%%x)', time.gmtime(1863126720))
    print time.strftime('%X - Время по локальному формату. (%%X)', time.gmtime(1863126720))
    print time.strftime('%y - Год [00,99]. (%%y)', time.gmtime(1863126720))
    print time.strftime('%Y - Год. (%%Y)', time.gmtime(1863126720))
    print time.strftime('%Z - Часовой пояс. (%%Z)', time.gmtime(1863126720))
    print time.strftime('%% - Знак процента. (%%\x25\x25)', time.gmtime(1863126720))

    ОтветитьУдалить