I have a lovely little anecdote that I pull out whenever talk about software engineering around timezones comes up.
I used to go to the local Alamo Drafthouse theater to watch movies. Decent food, decent service, ironclad policies against lateness, cellphone usage and talking during the movie, as well as a well-curated slate of programming catering to niche movie lovers. Basically straddling the line between an indie theater and a big multiplex.
Anyway, one day they announced a one-night showing of Commando, Arnold's quintessential 80s macho action flick (not Predator, the other one). I snagged a ticket and hit the "Add to Calendar" button on the confirmation page to add it to my phone's calendar (because if it isn't in my phone's calendar, it doesn't exist.) A couple weeks later, I showed up fifteen minutes early for showtime, only to be turned away for being 45 minutes late. I checked my calendar, it said 8pm showtime. It was 7:45pm. How could I be late? Did the showtime get moved up an hour without me knowing?
Eventually, I figured it out. I bought the ticket while I was in Chicago, on Central Time. The theater is in Brooklyn NY, on Eastern Time. The "Add to Calendar" link just indicated "7pm" without a timezone offset, so it got added to my calendar as 7pm CT, which got changed to 8pm ET when I returned to New York.
Moral of the story: in software engineering, a time is meaningless without a timezone attached. If you don't want to deal with timezones, just use the unix timestamp and let people cleverer than you work out the displayed time.