datatracker/ietf/utils/timezone.py

40 lines
1.3 KiB
Python

# Copyright The IETF Trust 2012-2020, All Rights Reserved
# -*- coding: utf-8 -*-
import pytz
import datetime
from django.conf import settings
from django.utils import timezone
def local_timezone_to_utc(d):
"""Takes a naive datetime in the local timezone and returns a
naive datetime with the corresponding UTC time."""
local_timezone = pytz.timezone(settings.TIME_ZONE)
d = local_timezone.localize(d).astimezone(pytz.utc)
return d.replace(tzinfo=None)
def date2datetime(date, tz=pytz.utc):
return tz.localize(datetime.datetime(*(date.timetuple()[:3]), 12, 0))
date2datetime12 = date2datetime
def date2datetime00(date, tz=pytz.utc):
return tz.localize(datetime.datetime(*(date.timetuple()[:3]), 0, 0))
def datetime_today(tzinfo=pytz.utc):
"""
Return a timezone-aware datetime representing today, for use
with datetime fields representing a date.
"""
return tzinfo.localize(datetime.datetime.combine(datetime.datetime.now(tz=tzinfo).date(), datetime.time(12)))
def datetime_today_start(tzinfo=pytz.utc):
"""
Return a timezone-aware datetime representing today, for use
with datetime fields representing a date.
"""
return tzinfo.localize(datetime.datetime.combine(timezone.now().date(), datetime.time(0)))