pendulum tools

datetime_to_pendulum

 1 def datetime_to_pendulum(date_source: datetime.datetime) -> pendulum.DateTime:
 2     """Transforme une datetime.datetime en pendulum.DateTime avec une
 3     éventuelle conversion de fuseau horaire (settings.TIME_ZONE).
 4
 5     Examples:
 6
 7         from tools.utils_time import datetime_to_pendulum
 8
 9         created = datetime_to_pendulum(self.created)
10     """
11     pendulum_date = pendulum.datetime(
12         date_source.year,
13         date_source.month,
14         date_source.day,
15         hour=date_source.hour,
16         minute=date_source.minute,
17         second=date_source.second,
18         tz=date_source.tzinfo,
19     ).in_timezone(settings.TIME_ZONE)
20
21     return pendulum_date

date_to_pendulum

 1 def date_to_pendulum(date_source: datetime.date) -> pendulum.DateTime:
 2     """Transforme une datetime.datetime en pendulum.DateTime avec une
 3     éventuelle conversion de fuseau horaire (settings.TIME_ZONE).
 4
 5     Examples:
 6
 7         from tools.utils_time import date_to_pendulum
 8
 9         created = date_to_pendulum(self.created)
10     """
11     pendulum_date = pendulum.datetime(
12         date_source.year,
13         date_source.month,
14         date_source.day,
15     ).in_timezone(settings.TIME_ZONE)
16
17     return pendulum_date

pendulum_to_datetime

1 def pendulum_to_date(date_source: pendulum.DateTime) -> datetime.date:
2     """Transforme une pendulum.DateTime en datetime.date."""
3     date = datetime.date(
4         date_source.year,
5         date_source.month,
6         date_source.day,
7     )
8
9     return date

pendulum_to_datetime

 1 def pendulum_to_datetime(date_source: pendulum.DateTime) -> datetime.datetime:
 2     """Transforme une pendulum.DateTime en datetime.datetime.
 3     In [1]: import datetime
 4     In [2]: d = datetime.datetime.now()
 5
 6     ╭───────────────────────── <class 'datetime.datetime'> ──────────────────────────╮
 7     │ datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]]) │
 8     │                                                                                │
 9     │ ╭────────────────────────────────────────────────────────────────────────────╮ │
10     │ │ datetime.datetime(2021, 11, 25, 6, 15, 19, 595852)                         │ │
11     │ ╰────────────────────────────────────────────────────────────────────────────╯ │
12     │                                                                                │
13     │         day = 25                                                               │
14     │        fold = 0                                                                │
15     │        hour = 6                                                                │
16     │         max = datetime.datetime(9999, 12, 31, 23, 59, 59, 999999)              │
17     │ microsecond = 595852                                                           │
18     │         min = datetime.datetime(1, 1, 1, 0, 0)                                 │
19     │      minute = 15                                                               │
20     │       month = 11                                                               │
21     │  resolution = datetime.timedelta(microseconds=1)                               │
22     │      second = 19                                                               │
23     │      tzinfo = None                                                             │
24     │        year = 2021                                                             │
25     ╰────────────────────────────────────────────────────────────────────────────────╯
26
27     """
28     date_datetime = datetime.datetime(
29         date_source.year,
30         date_source.month,
31         date_source.day,
32         date_source.hour,
33         date_source.minute,
34         date_source.second,
35     )
36
37     return date_datetime