Дата и время в 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-12-09 09:34:17.185141 Час: 09 Минута: 34 Секунда: 17 Год: 2024 Месяц: 12 День: 09
Сегодняшняя дата
Создайте файл today.py следующего содержания
import datetime
today = datetime.date.today()
print(f"Сегодня: {today}")
python today.py
Сегодня: 2024-12-09
Работа со временем в стандартной библиотеке
Создайте файл
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-12-09 today.year: 2024 today.month: 12 today.day: 09 today.weekday: 0 today.isoweekday: 1
Временные интервалы
Можно прибавлять временные интервалы к текущему времени или вычитать их из него
import datetime # DATE tdelta = datetime.timedelta(days=7) print(f"next week: {today + tdelta}") print(f"last week: {today - tdelta}")
next week: 2024-12-16 last week: 2024-12-02
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: 09:34:17.100000 year: 2024 dt + delta: 2024-12-16 09:34:17.100000 today: 2024-12-09 09:34:17.764377 now: 2024-12-09 09:34:17.764386 utc: 2024-12-09 07:34:17.764390
Функции из datetime
_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))
1733729657.020916 2024-12-09 09:34:17.020916
Основы Python | |
Python | |
Установка Python | |
ООП в Python | |
Функции | |
docstring | |
#!: Shebang | |
Объекты | |
os | |
pathlib | |
Сложности при работе с Python |