Module alexandria.data_structs.datetime

Datetime utilities

Expand source code
# SPDX-FileCopyrightText: © 2021 Antonio López Rivera <antonlopezr99@gmail.com>
# SPDX-License-Identifier: GPL-3.0-only

"""
Datetime utilities
------------------
"""


import datetime as dt


def string_to_datetime(dates, fmt='%Y-%m-%d'):
    """
    :param dates: List of dates in string format
    :param fmt: Date format in the date strings
    :return: List of dates in datetime format
    """
    if not(isinstance(dates, list)):
        dates = [dates]
    return [dt.datetime.strptime(d, fmt).date() for d in dates]


def datetime_to_string(dt_objs, fmt='%Y-%m-%d'):
    """
    :param dt_objs: List of dates in datetime format
    :param fmt: Date format to create date strings
    :return: List of dates in string format, following the given format
    """
    if not(isinstance(dt_objs, list)):
        dt_objs = [dt_objs]
    return [dt.datetime.strftime(d, fmt) for d in dt_objs]


def datetime_to_days(dates, year_0=1979):
    """
    :param dates: List of dates in datetime format
    :param year_0: Year from which dates are referenced (literally "year 0")
    :return: List of dates in number of days since "year 0"
    """
    _d = []
    for date in datetime_to_string(dates):
        d = str(date).split('-')
        d = (float(d[0])-year_0)*365 + float(d[1])*30 + float(d[2])
        _d.append(d)
    return _d

Functions

def datetime_to_days(dates, year_0=1979)

:param dates: List of dates in datetime format :param year_0: Year from which dates are referenced (literally "year 0") :return: List of dates in number of days since "year 0"

Expand source code
def datetime_to_days(dates, year_0=1979):
    """
    :param dates: List of dates in datetime format
    :param year_0: Year from which dates are referenced (literally "year 0")
    :return: List of dates in number of days since "year 0"
    """
    _d = []
    for date in datetime_to_string(dates):
        d = str(date).split('-')
        d = (float(d[0])-year_0)*365 + float(d[1])*30 + float(d[2])
        _d.append(d)
    return _d
def datetime_to_string(dt_objs, fmt='%Y-%m-%d')

:param dt_objs: List of dates in datetime format :param fmt: Date format to create date strings :return: List of dates in string format, following the given format

Expand source code
def datetime_to_string(dt_objs, fmt='%Y-%m-%d'):
    """
    :param dt_objs: List of dates in datetime format
    :param fmt: Date format to create date strings
    :return: List of dates in string format, following the given format
    """
    if not(isinstance(dt_objs, list)):
        dt_objs = [dt_objs]
    return [dt.datetime.strftime(d, fmt) for d in dt_objs]
def string_to_datetime(dates, fmt='%Y-%m-%d')

:param dates: List of dates in string format :param fmt: Date format in the date strings :return: List of dates in datetime format

Expand source code
def string_to_datetime(dates, fmt='%Y-%m-%d'):
    """
    :param dates: List of dates in string format
    :param fmt: Date format in the date strings
    :return: List of dates in datetime format
    """
    if not(isinstance(dates, list)):
        dates = [dates]
    return [dt.datetime.strptime(d, fmt).date() for d in dates]