You answered your own question in the following sentence - ISO 8601 timestamps do not require a time zone, and infer "local time" if none is provided.
For this reason, most people either use UTC time or they use offset timezones for timestamps. The latter is nicer for humans who like understanding when things happened in terms other than hundreds of millions of seconds since 1970, but more complex to implement.
Using standard ISO timestamps is good. The reason why people would like to use them is because they sort well, they parse everywhere, and they're human-readable. That last reason is the main and really only reason why you would prefer it to a Unix timestamp. They're standard, but they're a standard for how to communicate things in a human-readable manner. If you wanted to just store accurate time, store a binary 128-bit fixed-point long instead of using UTF-8, since it doesn't need to be human-readable.
> [5.3.1.1] When the application identifies the need for an expression only of a time of the day then the complete representation shall be a single numeric data element comprising six digits in the basic format, where [hh] represents hours, [mm] minutes and [ss] seconds.
> [5.4.1] The components of a time-point shall be written in the following sequence
> For calendar dates:
> year - month - day - time designator - hour - minute - second - zone designator
> The zone designator is empty if use is made of local time of the day in accordance with [5.3.1.1]
[1] http://lists.ebxml.org/archives/ebxml-core/200104/pdf00005.p...
I think this sort of argument is a bit shortsighted. Using ISO timestamps brings with it the semantics of including UTC offsets in pretty much every operation and historically date library APIs have had their ways of confusing consumers. Sure you can read the data without having to convert them in troubleshooting. You also will end up troubleshooting more because somebody somewhere used a library call that discarded an offset or something similar.
> While it may be safe to assume local time when communicating in the same time zone, it is ambiguous when used in communicating across different time zones.
https://en.wikipedia.org/wiki/ISO_8601#Time_zone_designators
> So the zone designation for New York (on standard time) would be "−05:00"
Except for the other half of the year where it is "-04:00". If you, by chance, pick that offset up in logic, make sure that where you apply it it is still the same half of the year! Classical off by one.