woob.tools.date

local2utc(dateobj)[source]
utc2local(dateobj)[source]
now_as_utc()[source]
now_as_tz(tzinfo)[source]
class LinearDateGuesser(current_date=None, date_max_bump=timedelta(31))[source]

Bases: object

The aim of this class is to guess the exact date object from a day and a month, but not a year.

It works with a start date (default is today), and all dates must be sorted from recent to older.

try_assigning_year(day, month, start_year, max_year)[source]

Tries to create a date object with day, month and start_year and returns it. If it fails due to the year not matching the day+month combination (i.e. due to a ValueError – TypeError and OverflowError are not handled), the previous or next years are tried until max_year is reached. In case initialization still fails with max_year, this function raises a ValueError.

set_current_date(current_date)[source]
guess_date(day, month, change_current_date=True)[source]

Returns a date object built from a given day/month pair.

class date[source]

Bases: date

strftime(fmt)[source]

format -> strftime() style string.

classmethod from_date(d)[source]
class datetime[source]

Bases: datetime

strftime(fmt)[source]

format -> strftime() style string.

combine(date, time)[source]

date, time -> datetime with same date and time fields

date()[source]

Return date object with same year, month and day.

classmethod from_datetime(dt)[source]
new_date(d)[source]

Generate a safe date from a datetime.date object

new_datetime(d)[source]

Generate a safe datetime from a datetime.date or datetime.datetime object

closest_date(date, date_from, date_to)[source]

Adjusts year so that the date is closest to the given range. Transactions dates in a statement usually contain only day and month. Statement dates range have a year though. Merge them all together to get a full transaction date.