# Работа с датами

## to\_timestamp(dt)

Преобразует дату в число (в секундах).

```
>>> to_timestamp(%datetime%)
1725474395.201937
```

## from\_timestamp(ts)

Преобразует число (timestamp — в секундах) в дату.

```
>>> from_timestamp(1725474395.201937)
2024-09-04 21:26:35.201937+03:00
```

## date\_diff(d1, d2)

Возвращает число секунд, прошедших от **d1** до **d2**.

```
>>> date_diff(%d1%, %d2%)
600.0
```

## add\_to\_date(dt, delta, unit)

Прибавляет (вычитает) к дате указанное в **delta** число дней/часов/минут/секунд. Возможные значения для **unit**:

* days
* hours
* minutes
* seconds

```
>>> add_to_date(%datetime%, 2, 'days')
2024-09-07 13:40:35.377632+03:00
```

## format\_date(dt, fmt)

Преобразует дату (объект) в строку в указанном формате.&#x20;

Основные спецификаторы формата:

| Спецификатор | Пример   | Описание    |
| ------------ | -------- | ----------- |
| yy           | 24       | год         |
| yyyy         | 2024     | год         |
| MM           | 09       | месяц       |
| MMMM         | сентября | месяц       |
| dd           | 05       | число       |
| EE           | чт       | день недели |
| EEEE         | четверг  | день недели |
|              |          |             |
| HH           | 16       | часы        |
| mm           | 03       | минуты      |
| ss           | 25       | секунды     |

Обращаем внимание, что регистр спецификаторов важен, так, например MM — это месяц, а mm — минуты.

Полное описание возможных спецификаторов формата: <https://unicode.org/reports/tr35/tr35-dates.html#table-date-field-symbol-table>

```
>>> format_date(%datetime%, 'dd.MM.yyyy HH:mm')
05.09.2024 16:05

>>> format_date(%datetime%, 'dd.MM.yyyy')
05.09.2024

>>> format_date(%datetime%, 'dd.MM.yyyy')
05.09.2024

>>> format_date(%datetime%, 'EEEE, d MMMM')
четверг, 5 сентября

>>> format_date(%datetime%, "yyyy-MM-dd'T'HH:mm:ss.SSSZ")
2024-09-05T16:14:38.523+0300
```
