Since the FXS has no timezone setting, the actual physical clock can only be set to local time. Zero appears to have added an arbitrary 7 hour offset to the timestamp. There is no logic in that. If they wanted it to be closer to a Unix timestamp in UTC, that would only be correct for bikes in California during the summer. So one can only subtract the mistake (7*60*60) and assume local time.
Then, for computational purposes, pretend the bike, logs, server, parser and viewer all exist in Greenwich. The script correctly does that using gmtime(). It can't use localtime() because that would be converting an already-local time to local.
I can confirm that strftime('%m/%d/%Y %H:%M:%S', gmtime(time())) produces the same output in python2 and python3 in any server time zone. (Interestingly, %Z output differs between python2 and python3.)
Yes, I checked that, too. I wonder more whether strftime changed between Python 2.7 (then) and Python 3.5 (now). (Yes, I'd like newer than 3.5 but Hassler's server had that.)
For what it's worth, I prefer to work with logs in CSV/TSV format, or even JSON, where I can fully specify every piece of data and let the viewer software decide how to process and display it. The reason we've worked in the text format so far is that we have to compare to Zero's claims typically, which made up this log format which has a lot of ad hoc printing styles and conventions, very typical of an automotive manufacturer.
Maybe SR/Fs modernized clock settings with timezone or cellular or GPS? No idea.
I'm still in the process of decoding SR/F (FST) logs, and the timestamp extraction is as yet not fully resolved. the SR/F localizes cellular/GPS activity to the CCM (cellular connectivity module), not the MBB.