Быстрый в изучении - мощный в программировании
>> Telegram ЧАТ для Python Программистов

Свободное общение и помощь советом и решением проблем с кодом! Заходите в наш TELEGRAM ЧАТ!

>> Python Форум Помощи!

Мы создали форум где отвечаем на все вопросы связанные с языком программирования Python. Ждем вас там!

>> Python Канал в Telegram

Обучающие статьи, видео и новости из мира Python. Подпишитесь на наш TELEGRAM КАНАЛ!

12 советов для работы с датой и временем

18 апреля 2017 г. Archy Просмотров: 28145 RSS 1
Примеры Python » Общие вопросы , ,

datetime python

Библиотека datetime содержит несколько полезных объектов для работы со временем и датами. Я регулярно пользуюсь ими, и хочу поделиться кое-какими полезными операциями, которые могут помочь вам в работе.

1. Во первых, давайте импортируем библиотеку datetime и создадим три разных объекта:

  • Объект date – для хранения даты;
  • Объект time – для хранения времени;
  • Объект datetime – для хранения и даты и времени.

Для начала создадим объект datetime, мы можем извлечь его время и дату и создать соответствующие объекты:

import datetime
now = datetime.datetime.now()
today = now.date()
moment = now.time()

Если вы впишете все вышеуказанное, вы получите что-то на подобие следующего:

print(now) # datetime.datetime(2017, 4, 14, 16, 38, 46, 271475)
print(today) # datetime.date(2017, 4, 14)
print(moment) # datetime.time(16, 38, 46, 271475)

Здесь мы видим, что время 16 часов 46 минут и 46.171475 секунду, и сегодня 14 Апреля 2017.

2. Вы также можете создать объекты date и time и получить объект datetime python, при помощи метода комбинирования:

today = datetime.date.today()
moment = datetime.datetime.now().time()
now = datetime.datetime.combine(today, moment)

3. Еще один интересный объект, это timedelta, который используется для суммирования или вычитания количества дней:

yesterday = today - datetime.timedelta(1)

Или он может хранить разницу между двумя объектами datetime:

delta = yesterday - today

4. Объекты даты имеют три обязательных аргумента (вы можете изменить их порядок при помощи ключей):

my_date = datetime.date(1984, 6, 24)
my_date = datetime.date(day=24, year=1984, month=6)

5. Объекты времени не имеют обязательных аргументов. Эти три оператора являются эквивалентом:

my_time = datetime.time() 
my_time = datetime.time(0,0) # Час, Минута
my_time = datetime.time(hour=0, minute=0)

6. Изменение одного объекта datetime для получения другого, при помощи метода replace:

another_datetime = my_datetime.replace(year=2014, month=1)

7. Получение объекта datetime, представляющий эпоху 01-01-1970:

epoch = datetime.datetime.utcfromtimestamp(0)

8. Получение количества дней и секунд между эпохой и сейчас, а также получение общего количества прошедших секунд:

delta = now - epoch
days = delta.days
 
seconds = delta.seconds
total_seconds = delta.total_seconds()

9. Восстановление объекта, с использованием количества секунд начиная с эпохи при помощи метода utcfromtimestamp:

now = datetime.datetime.utcfromtimestamp(seconds)

10. Создаем объект date как “1984-06-24”:

string_date = str(my_date)

11. Восстановление объекта со строки, на подобие “1984-06-24”:

my_date = datetime.date(*[int(i) for i in string_date.split("-")])

12. Пишем объект date с настроенным форматом строки при помощи метода strftime:

string_date =  my_date.strftime('%m/%d/%Y')  # Выводит: "06/24/1984"

Спасибо за внимание, надеюсь, эта статья поможет вам при работе с датой и временем в Python!

Комментариев: 1
  1. Василий | 2020-01-09 в 11:11:19

    Добрый день! Каким образом указывать время конкретного региона?

Оставьте комментарий!

Используйте нормальные имена.

Имя и сайт используются только при регистрации

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email. При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д., а также подписку на новые комментарии.

(обязательно)