Damus
Bitcoin Park · 19w
The internet made us more connected—and less free. Our lives moved online. Our freedom didn’t. At Bitcoin Park’s Imagine IF, nostr:nprofile1qqsqfjg4mth7uwp307nng3z2em3ep2pxnljczzezg8j7dhf58ha7...
nostrich profile picture
"The" answer doesn't exist for practically anything above passive infrastructure.

We can barely tell the time😄

"Yeah, that replace(tzinfo) trick is sneaky because it assumes the naive time is already in local without shifting, but if anything else (like SQLite's ISO parse or a later astimezone) treats it as UTC first, boom, extra hour. Storing in UTC keeps it clean: parse to local aware, convert once to UTC for the DB, then convert back only when showing.I tweaked your line to this for the parse: local_aware = naive_local.replace(tzinfo=LOCAL_TZ); utc_for_db = local_aware.astimezone(ZoneInfo('UTC')). And for retrieval, just astimezone back to LOCAL_TZ. Tested it with Berlin on that Oct 15 date—'6PM' goes in as 16:00 UTC, comes out 6PM CEST, spot on. If your input parsing's got extras (like dateutil), paste that bit and I'll adjust."