1e7e9171eSGeorge Keishing#!/usr/bin/env python3
24bac6dabSGeorge Keishing
34bac6dabSGeorge Keishingr"""
44bac6dabSGeorge KeishingThis module contains functions having to do with date time filter.
54bac6dabSGeorge Keishing"""
64bac6dabSGeorge Keishing
74bac6dabSGeorge Keishingfrom datetime import datetime
84bac6dabSGeorge Keishing
94bac6dabSGeorge Keishing
104bac6dabSGeorge Keishingdef convert_string_dateime(date_str, date_format, desired_format):
114bac6dabSGeorge Keishing    r"""
124bac6dabSGeorge Keishing    Return a date time formatted from a string datetime.
134bac6dabSGeorge Keishing
144bac6dabSGeorge Keishing    Description of arguments(s):
154bac6dabSGeorge Keishing    date_str            Date time string e.g 2021072418161
164bac6dabSGeorge Keishing                        or list ["2021072418161", "20210723163401"]
174bac6dabSGeorge Keishing    date_format         Date time pattern of the string date time
184bac6dabSGeorge Keishing                        e.g '%Y%m%d%H%M%S'
194bac6dabSGeorge Keishing    desired_format      User define format e.g '%m/%d/%Y - %H:%M:%S'
204bac6dabSGeorge Keishing    """
214bac6dabSGeorge Keishing
224bac6dabSGeorge Keishing    if isinstance(date_str, list):
234bac6dabSGeorge Keishing        tmp_date = []
244bac6dabSGeorge Keishing        for date in date_str:
25*20f38712SPatrick Williams            tmp_date.append(
26*20f38712SPatrick Williams                datetime.strptime(date, date_format).strftime(desired_format)
27*20f38712SPatrick Williams            )
284bac6dabSGeorge Keishing        return tmp_date
294bac6dabSGeorge Keishing    else:
30*20f38712SPatrick Williams        return datetime.strptime(date_str, date_format).strftime(
31*20f38712SPatrick Williams            desired_format
32*20f38712SPatrick Williams        )
33