mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-17 07:41:26 +00:00
30 lines
897 B
Python
30 lines
897 B
Python
import datetime
|
|
from django.conf import settings
|
|
from django.utils import six
|
|
from django.utils import timezone
|
|
|
|
def dt(value):
|
|
"""Convert 32/64 bits timestamp to datetime object.
|
|
"""
|
|
try:
|
|
return datetime.datetime.utcfromtimestamp(value)
|
|
except ValueError:
|
|
# TODO: need a better way to handle 64 bits timestamp.
|
|
return datetime.datetime.utcfromtimestamp(value/1000000)
|
|
|
|
|
|
def value_to_db_datetime(value):
|
|
if value is None:
|
|
return None
|
|
|
|
# MySQL doesn't support tz-aware datetimes
|
|
if timezone.is_aware(value):
|
|
if settings.USE_TZ:
|
|
value = value.astimezone(timezone.utc).replace(tzinfo=None)
|
|
else:
|
|
raise ValueError("MySQL backend does not support timezone-aware datetimes when USE_TZ is False.")
|
|
|
|
# MySQL doesn't support microseconds
|
|
return six.text_type(value.replace(microsecond=0))
|
|
|