Дата и время в Python

Содержание
Введение
now: текущее время
today: сегодняшняя дата
Стандартная библиотека
Временные интервалы
Функции из datetime
fromtimestamp
Похожие статьи

Введение

В этой статье вы узнаете как работать с датой и временем в Python 3.

Текущее время

Создайте файл current_time.py следующего содержания

import datetime current_time = datetime.datetime.now() print(f"Сейчас: {current_time}") # Отдельно час, минута и секунда print(f"\nЧас: {now.hour}" f"\nМинута: {now.minute}" f"\nСекунда: {now.second}" ) # Отдельно год, месяц и день print(f"\nГод: {now.year}" f"\nМесяц: {now.month}" f"\nДень: {now.day}" )

python current_time.py

Сейчас: 2024-04-26 19:21:11.185141 Час: 07 Минута: 21 Секунда: 11 Год: 2024 Месяц: 04 День: 26

Сегодняшняя дата

Создайте файл today.py следующего содержания

import datetime today = datetime.date.today() print(f"Сегодня: {today}")

python today.py

Сегодня: 2024-04-26

Работа со временем в стандартной библиотеке

Создайте файл date_time.py и копируйте туда код из примеров.

Запустить файл можно командой python3 date_time.py

import datetime # DATE specified_date = datetime.date(2020, 11, 23) print(f"specified_date: {specified_date}") today = datetime.date.today() print(f"today: {today}") print(f"today.year: {today.year}") print(f"today.month: {today.month}") print(f"today.day: {today.day}") # Monday is 0 Sunday is 6 print(f"today.weekday: {today.weekday()}") # Monday is 1 Sunday is 7 print(f"today.isoweekday: {today.isoweekday()}")

specified_date: 2020-11-23 today: 2024-04-26 today.year: 2024 today.month: 04 today.day: 26 today.weekday: 4 today.isoweekday: 5

Временные интервалы

Можно прибавлять временные интервалы к текущему времени или вычитать их из него

import datetime # DATE tdelta = datetime.timedelta(days=7) print(f"next week: {today + tdelta}") print(f"last week: {today - tdelta}")

next week: 2024-05-03 last week: 2024-04-19

bday = datetime.date(2134, 3, 9) till_bday = bday - today print(f"days till 200 birthday: {till_bday.days}") print(f"seconds till 200 birthday: {till_bday.total_seconds()}") # TIME t = datetime.time(9, 30, 45, 100000) print(f"hour: {t.hour}") # DATETIME dt = datetime.datetime(2020, 11, 23, 12, 42, 30, 100000) print(f"time: {dt.time()}") print(f"year: {dt.year}") tdelta = datetime.timedelta(days=7) print(f"dt + delta: {dt + tdelta}") dt_today = datetime.datetime.today() dt_now = datetime.datetime.now() dt_utcnow = datetime.datetime.utcnow() print(f"today: {dt_today}\nnow: {dt_now}\nutc: {dt_utcnow}")

days till 200 birthday: 40851 seconds till 200 birthday: 3529526400.0 hour: 9 time: 19:21:11.100000 year: 2024 dt + delta: 2024-05-03 19:21:11.100000 today: 2024-04-26 19:21:11.764377 now: 2024-04-26 19:21:11.764386 utc: 2024-04-26 16:21:11.764390

Функции из datetime

github

_is_leap()

Определяет високосный ли год

def _is_leap(year): "year -> 1 if leap year, else 0." return year % 4 == 0 and (year % 100 != 0 or year % 400 == 0)

_days_before_year()

Определяет сколько дней прошло между 1 января 1-го года и 1 января заданного года

def _days_before_year(year): "year -> number of days before January 1st of year." y = year - 1 return y*365 + y//4 - y//100 + y//400

fromtimestamp

Конвертировать время из формата epochtime в обычный можно с помощью метода fromtimestamp

Время в формате epochtime получим с помощью метода st_mtime из библиотеки pathlib

from pathlib import Path from datetime import datetime with open("cities.txt", "w") as f: f.write("Barcelona, Benalmadena, Cordoba, Malaga, Torremolinos") file = Path("cities.txt") file_stat = file.stat() print(file_stat.st_mtime) print(datetime.fromtimestamp(file_stat.st_mtime))

1714148471.020916 2024-04-26 19:21:11.020916

Похожие статьи
Основы Python
Python
Установка Python
ООП в Python
Функции
docstring
#!: Shebang
Объекты
os
pathlib
Сложности при работе с Python
Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@eth1.ru если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящуюю по тематике.
3. Хотите поддержать сайт материально
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......