training-web.ruГлавнаяКатегорииО насКарта сайтаПоискТёмная тема

Категории

Как работать с датой модуль datetime Python

Создано: 06 сентября 2017Автор: Егор Астапов2926 просмотровСложность: легкий

От работы со временем не убежать. Вы должны уметь выводить дату в различных форматах. Более того, вы должны прибавлять к дате заданные величины. Например, прибавить к дате 3 дня. В Python есть модуль datetime для работы с датой.


#!/usr/bin/python3
from datetime import *

today = datetime.today()
print('Today is', today)
#вывод: Today is 2017-05-10 22:07:35.046777

for attr in ['year', 'month', 'day', 'hour', 'minute', 'second', 'microsecond']:
    print(attr, ':\t', getattr(today, attr))

'''
вывод:
year :   2017
month :  5
day :    10
hour :   22
minute :         11
second :         8
microsecond :    268701
'''

# sep = ' ' - разделитель
print('time:', today.hour, ':', today.minute, sep = ' ')
#вывод: time: 22 : 19

day = today.strftime('%A')
month = today.strftime('%B')
print('Date:', day, month, today.day)
#вывод: Date: Wednesday May 10

Теперь посмотрите на пример ниже. Тут выводится текущее время.


#!/usr/bin/python3
from datetime import *

"""
%A - полное завание недели
%B - полное название месяца
%c - дата и время
%d - порядковый номер дня в месяце 
%f - количество микросекунд от 0 до 9999999
%H - десятичное представление часа от 0 до 23 (для 24-часового вида)
%I - десятичное представление часа от 1 до 12 (для 12-часового вида)
%j - порядковый номер дня в году от 0 до 366
%m - порядковый номер месяца от 1 до 12
%M - десятичное представление минут от 0 до 59
%p - обозначение АМ(до полудня) или РМ(после полудня)
%S - десятичное представление секунд от 0 до 59 
%w - порядковый номер дня в неделе от 0 (воскресенье) до 6 
%W - порядковый номер недели в году от 0 до 53
%X - локальное время (%x - локальная дата)
%Y - полное десятичное представление года от 0001 до 9999 (%y -\
 для кратного представления от 00 до 99)
%z - смещение часового пояса от UTC в виде +ЧЧММ или -ЧЧММ
%Z - название часового пояса
"""

today = datetime.today()
print('A:', today.strftime('%A'))
print('B:', today.strftime('%B'))
print('c:', today.strftime('%c'))
print('d:', today.strftime('%d'))
print('f:', today.strftime('%f'))
print('H:', today.strftime('%H'))
print('I:', today.strftime('%I'))
print('j:', today.strftime('%j'))
print('m:', today.strftime('%m'))
print('M:', today.strftime('%M'))
print('p:', today.strftime('%p'))
print('S:', today.strftime('%S'))
print('w:', today.strftime('%w'))
print('W:', today.strftime('%W'))
print('Y:', today.strftime('%Y'))
print('z:', today.strftime('%z'))
print('Z:', today.strftime('%Z'))

'''
вывод:
A: Wednesday
B: May
c: Wed May 10 22:42:36 2017
d: 10
f: 618084
H: 22
I: 10
j: 130
m: 05
M: 42
p: PM
S: 36
w: 3
W: 19
Y: 2017
z: 
Z:
'''

Функция strftime(формат, [t]) - преобразует время в строку по формату:

Формат strftime

ФорматЗначение
%aСокращенное название дня недели
%AПолное название дня недели
%bСокращенное название месяца
%BПолное название месяца
%cДата и время
%dДень месяца [01,31]
%HЧас (24-часовой формат) [00,23]
%IЧас (12-часовой формат) [01,12]
%jДень года [001,366]
%mНомер месяца [01,12]
%MЧисло минут [00,59]
%pДо полудня или после (при 12-часовом формате)
%SЧисло секунд [00,61]
%UНомер недели в году (нулевая неделя начинается с воскресенья) [00,53]
%wНомер дня недели [0(Sunday),6]
%WНомер недели в году (нулевая неделя начинается с понедельника) [00,53]
%xДата
%XВремя
%yГод без века [00,99]
%YГод с веком
%ZВременная зона
%%Знак '%'

Комментарии

реклама