ComicMTL / backend /module /utils /date_utils.py
BloodyInside's picture
firsty
947c08e
raw
history blame
1.55 kB
from datetime import datetime, timedelta
from unittest import result
from dateutil.relativedelta import relativedelta
import pytz
class utc_time():
# Get current time
def __init__(self) -> None:
self.current_time = datetime.now()
def get(self):
return self.current_time.astimezone(pytz.UTC)
def add(self, amount, unit):
if unit == 'year':
self.current_time += relativedelta(years=int(amount))
elif unit == 'month':
self.current_time += relativedelta(months=int(amount))
elif unit == 'week':
self.current_time += relativedelta(weeks=int(amount))
elif unit == 'day':
self.current_time += relativedelta(days=int(amount))
elif unit == 'hour':
self.current_time += relativedelta(hours=int(amount))
elif unit == 'minute':
self.current_time += relativedelta(minutes=int(amount))
elif unit == 'second':
self.current_time += relativedelta(seconds=int(amount))
elif unit == 'millisecond':
self.current_time += relativedelta(microseconds=int(amount)*1000)
else: raise Exception("[date_utils] Error: Add unit not found.")
# Add more units as needed...
return self
def convert_utc(dt):
utc_time = dt.astimezone(pytz.UTC)
return utc_time
def startOf(dt):
start_of = datetime(dt.year, dt.month, dt.day)
return start_of
def endOf(dt):
end_of = startOf(dt) + timedelta(days=1, seconds=-1)
return end_of