tai64nlocal(8) converts precise TAI64N timestamps to a human-readable format.




tai64nlocal reads lines from stdin. If a line does not begin with @, tai64nlocal writes it to stdout without change. If a line begins with @, tai64nlocal looks for a timestamp after the @, in the format printed by tai64n(8), and writes the line to stdout with the timestamp converted to local time in ISO format: YYYY-MM-DD HH:MM:SS.SSSSSSSSS.

For example, in the US/Pacific time zone, the input line

  @4000000037c219bf2ef02e94 mark

should be printed as

  1999-08-23 21:03:43.787492500 mark

Beware, however, that the current implementation of tai64nlocal relies on the UNIX localtime library routine to find the local time. Some localtime implementations use a broken time scale that does not account for leap seconds. On systems that use the Olson tz library (with an up-to-date leap-second table), you can fix this problem by setting your time zone to, e.g, right/US/Pacific instead of US/Pacific.

Beware also that most localtime implementations are not Y2038-compliant.

tai64nlocal does not allocate any memory after it starts, except possibly inside localtime.


tai64nlocal exits 0 when it sees end of input. It exits 111 without an error message if it has trouble reading stdin or writing stdout.