tool · time / logs

one timestamp.
every format.

timecheck reads any timestamp — unix seconds, unix ms, iso 8601, rfc 2822, “now” — auto-detects which one you handed it, and prints it in all the others. pipe a log file through and unix tokens get rewritten to iso in place.

npm i -g @v0idd0/timecheck
github → npm mit · free forever
killer feature

--replace-unix · log files made readable

most timestamp tools take one ts and print one ts. timecheck has a stream-filter mode — pipe a log file in, get the same log out with unix tokens rewritten to iso. catches both 10-digit (seconds) and 13-digit (ms). leaves user-ids and sizes alone.

[1706482800] auth ok user=alice
[1706482801] db query ms=42
[1706482802] sent reply ms=12
[1706482805] err code=503 retry=2
[1706482810] session expired
[2024-01-28T23:00:00.000Z] auth ok user=alice
[2024-01-28T23:00:01.000Z] db query ms=42
[2024-01-28T23:00:02.000Z] sent reply ms=12
[2024-01-28T23:00:05.000Z] err code=503 retry=2
[2024-01-28T23:00:10.000Z] session expired
5
input formats
8
output fields
0
runtime deps
IANA
tz support
the four shapes

four ways you'll actually use it.

convert one timestamp

$ timecheck 1706482800
iso: 2024-01-28T23:00:00.000Z
unix s: 1706482800
unix ms: 1706482800000
rfc: Sun, 28 Jan 2024 23:00:00 GMT
rel: 2 years ago

now, in every format

$ timecheck
just `timecheck` — no args. prints every form of the current moment so you can paste it where you need it.

local time anywhere

$ timecheck 1706482800 --tz Asia/Jerusalem
local: 2024-01-29 01:00:00 Asia/Jerusalem
iso: 2024-01-28T23:00:00.000Z
any iana zone works.

json for scripts

$ timecheck 1706482800 --json | jq .iso_8601
"2024-01-28T23:00:00.000Z"
structured out, every field named, ready for jq / cron / ci.
install

three places it earns its keep.

npm

$ npm i -g @v0idd0/timecheck

node 14+ on linux / macos / windows. zero runtime deps. updates with npm update -g.

log inspection

$ tail -f app.log \
  | timecheck --replace-unix

follow a log live. unix tokens rewrite to iso as they stream past. nothing else changes — user-ids, sizes, levels stay verbatim.

shell quickie

$ date +%s | timecheck --json \
  | jq -r .iso_8601

chain through pipes. timecheck reads stdin if no positional arg is given.

why we built it

our log line was 1706482800. our incident channel was "when did this happen?". we wrote timecheck so the answer was already in the log.

no telemetry. no signup. no “upgrade for the enterprise rule pack.” mit forever, even if vøiddo dies tomorrow — the source is public and the npm package is yours to fork.

star on github → all tools