doing time zones slightly better
This commit is contained in:
@@ -1727,60 +1727,53 @@ def save_workout_database(f2, r, dosmooth=True, workouttype='rower',
|
||||
workoutstartdatetime = row.rowdatetime
|
||||
|
||||
|
||||
timezone_str = 'UTC'
|
||||
try:
|
||||
workoutstartdatetime = timezone.make_aware(workoutstartdatetime)
|
||||
except ValueError:
|
||||
pass
|
||||
|
||||
|
||||
dologging('debuglog.log','Dataprep line 1737, Workout Startdatetime {workoutstartdatetime}'.format(
|
||||
workoutstartdatetime=workoutstartdatetime,
|
||||
))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
try:
|
||||
latavg = row.df[' latitude'].mean()
|
||||
lonavg = row.df[' longitude'].mean()
|
||||
|
||||
tf = TimezoneFinder()
|
||||
if workoutstartdatetime.tzinfo is None:
|
||||
timezone_str = 'UTC'
|
||||
try:
|
||||
timezone_str = tf.timezone_at(lng=lonavg, lat=latavg)
|
||||
except (ValueError,OverflowError): # pragma: no cover
|
||||
timezone_str = 'UTC'
|
||||
if timezone_str == None: # pragma: no cover
|
||||
timezone_str = tf.closest_timezone_at(lng=lonavg,
|
||||
lat=latavg)
|
||||
if timezone_str == None: # pragma: no cover
|
||||
timezone_str = r.defaulttimezone
|
||||
try:
|
||||
workoutstartdatetime = pytz.timezone(timezone_str).localize(
|
||||
row.rowdatetime
|
||||
)
|
||||
workoutstartdatetime = timezone.make_aware(workoutstartdatetime)
|
||||
except ValueError:
|
||||
workoutstartdatetime = workoutstartdatetime.astimezone(
|
||||
pytz.timezone(timezone_str)
|
||||
)
|
||||
except KeyError:
|
||||
timezone_str = r.defaulttimezone
|
||||
pass
|
||||
|
||||
|
||||
try:
|
||||
latavg = row.df[' latitude'].mean()
|
||||
lonavg = row.df[' longitude'].mean()
|
||||
|
||||
tf = TimezoneFinder()
|
||||
try:
|
||||
timezone_str = tf.timezone_at(lng=lonavg, lat=latavg)
|
||||
except (ValueError,OverflowError): # pragma: no cover
|
||||
timezone_str = 'UTC'
|
||||
if timezone_str is None: # pragma: no cover
|
||||
timezone_str = tf.closest_timezone_at(lng=lonavg,
|
||||
lat=latavg)
|
||||
if timezone_str is None: # pragma: no cover
|
||||
timezone_str = r.defaulttimezone
|
||||
try:
|
||||
workoutstartdatetime = pytz.timezone(timezone_str).localize(
|
||||
row.rowdatetime
|
||||
)
|
||||
except ValueError:
|
||||
workoutstartdatetime = workoutstartdatetime.astimezone(
|
||||
pytz.timezone(timezone_str)
|
||||
)
|
||||
except KeyError:
|
||||
timezone_str = r.defaulttimezone
|
||||
|
||||
dologging('debuglog.log','Dataprep line 1763, Workout Startdatetime {workoutstartdatetime}'.format(
|
||||
workoutstartdatetime=workoutstartdatetime,
|
||||
))
|
||||
|
||||
duration = totaltime_sec_to_string(totaltime)
|
||||
|
||||
workoutdate = workoutstartdatetime.astimezone(
|
||||
pytz.timezone(timezone_str)
|
||||
).strftime('%Y-%m-%d')
|
||||
workoutstarttime = workoutstartdatetime.astimezone(
|
||||
pytz.timezone(timezone_str)
|
||||
).strftime('%H:%M:%S')
|
||||
workoutdate = workoutstartdatetime.strftime('%Y-%m-%d')
|
||||
workoutstarttime = workoutstartdatetime.strftime('%H:%M:%S')
|
||||
|
||||
s = 'Dataprep line 1780 workoutdate and time set to {workoutdate} and {workoutstarttime}'.format(
|
||||
s = 'Dataprep line 1772 workoutdate and time set to {workoutdate} and {workoutstarttime}'.format(
|
||||
workoutdate=workoutdate,
|
||||
workoutstarttime=workoutstarttime,
|
||||
)
|
||||
dologging('debuglog.log',s)
|
||||
|
||||
|
||||
if makeprivate: # pragma: no cover
|
||||
@@ -1812,6 +1805,8 @@ def save_workout_database(f2, r, dosmooth=True, workouttype='rower',
|
||||
if title is not None and len(title)>140: # pragma: no cover
|
||||
title = title[0:140]
|
||||
|
||||
timezone_str = str(workoutstartdatetime.tzinfo)
|
||||
|
||||
w = Workout(user=r, name=title, date=workoutdate,
|
||||
workouttype=workouttype,
|
||||
boattype=boattype,
|
||||
|
||||
Reference in New Issue
Block a user