Canonicalize how we convert timestamps to UTC datetimes.

No change in behavior with this commit, just making it easier to write a
future lint rule.
This commit is contained in:
Rishi Gupta
2017-02-25 21:44:09 -08:00
committed by Tim Abbott
parent 3348083017
commit 95f5c96bec
2 changed files with 6 additions and 9 deletions

View File

@@ -1231,11 +1231,8 @@ def fix_datetime_fields(data, table):
# type: (TableData, TableName) -> None # type: (TableData, TableName) -> None
for item in data[table]: for item in data[table]:
for field_name in DATE_FIELDS[table]: for field_name in DATE_FIELDS[table]:
if item[field_name] is None: if item[field_name] is not None:
item[field_name] = None item[field_name] = datetime.datetime.fromtimestamp(item[field_name], tz=timezone.utc)
else:
v = datetime.datetime.utcfromtimestamp(item[field_name])
item[field_name] = timezone.make_aware(v, timezone=timezone.utc)
def convert_to_id_fields(data, table, field_name): def convert_to_id_fields(data, table, field_name):
# type: (TableData, TableName, Field) -> None # type: (TableData, TableName, Field) -> None

View File

@@ -2,7 +2,7 @@ from __future__ import absolute_import
import datetime import datetime
import calendar import calendar
from django.utils.timezone import utc from django.utils import timezone
def is_timezone_aware(datetime_object): def is_timezone_aware(datetime_object):
# type: (datetime.datetime) -> bool # type: (datetime.datetime) -> bool
@@ -11,8 +11,8 @@ def is_timezone_aware(datetime_object):
def datetime_to_UTC(datetime_object): def datetime_to_UTC(datetime_object):
# type: (datetime.datetime) -> datetime.datetime # type: (datetime.datetime) -> datetime.datetime
if is_timezone_aware(datetime_object): if is_timezone_aware(datetime_object):
return datetime_object.astimezone(utc) return datetime_object.astimezone(timezone.utc)
return datetime_object.replace(tzinfo=utc) return datetime_object.replace(tzinfo=timezone.utc)
def floor_to_hour(datetime_object): def floor_to_hour(datetime_object):
# type: (datetime.datetime) -> datetime.datetime # type: (datetime.datetime) -> datetime.datetime
@@ -40,7 +40,7 @@ def ceiling_to_day(datetime_object):
def timestamp_to_datetime(timestamp): def timestamp_to_datetime(timestamp):
# type: (float) -> datetime.datetime # type: (float) -> datetime.datetime
return datetime.datetime.utcfromtimestamp(float(timestamp)).replace(tzinfo=utc) return datetime.datetime.fromtimestamp(float(timestamp), tz=timezone.utc)
def datetime_to_timestamp(datetime_object): def datetime_to_timestamp(datetime_object):
# type: (datetime.datetime) -> int # type: (datetime.datetime) -> int