_It depends_. One of the problems with time is that in different contexts, we mean different concepts by it. Sometimes it's "a globally unique point in time", sometimes "a human-specified label for an event time". If it's the former, ideally you convert into UTC at the earliest possible moment, and convert _to_ local time for display purposes only. If it's the latter, then it depends. For example, if I go on a transatlantic business trip, I want my online meeting times (which didn't change) to just be displayed in local time. But _my alarm clock_ shouldn't be displayed in local time, but be _reinterpreted_ in local time. And for the last case mentioned he is absolutely right. Although I might save the entry as a combination of naive datetime (event time) and aware datetime (scheduling time) instead of a string in that case.
Nobody said time is complicated because of pythons design