From dc11658b9059bd5bcf062ec9fcad4f2e48d68f46 Mon Sep 17 00:00:00 2001 From: benne238 Date: Mon, 28 Jun 2021 13:00:29 -0400 Subject: [PATCH] Move Item.__get_formatted_date to webqueue2api.parser.utils and rename to format_date_string --- src/webqueue2api/parser/utils.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/webqueue2api/parser/utils.py diff --git a/src/webqueue2api/parser/utils.py b/src/webqueue2api/parser/utils.py new file mode 100644 index 0000000..945a421 --- /dev/null +++ b/src/webqueue2api/parser/utils.py @@ -0,0 +1,26 @@ +"""Shared utilities for the parser package""" + +from dateutil import parser, tz +from datetime import datetime + +def format_date_string(date: str) -> str: + """Returns the date/time formatted as RFC 8601 YYYY-MM-DDTHH:MM:SS+00:00. + Returns empty string if the string argument passed to the function is not a datetime. + See: https://en.wikipedia.org/wiki/ISO_8601 + + Returns: + str: Properly formatted date/time recieved or empty string. + """ + try: + # This date is never meant to be used. The default attribute is just to set timezone. + parsed_date = parser.parse(date, default=datetime( + 1970, 1, 1, tzinfo=tz.gettz('EDT'))) + except: + return "" + + parsed_date_string = parsed_date.strftime("%Y-%m-%dT%H:%M:%S%z") + + return parsed_date_string + +if __name__ == "__main__": + print(format_date_string("Tue, 23 Jun 2020 13:30:45 -0400")) \ No newline at end of file