Skip to content

fix: use ISO 8601 format for log timestamps [AI generated]#1663

Open
jsquyres wants to merge 1 commit into
aristocratos:mainfrom
jsquyres:fix/log-iso8601-timestamps
Open

fix: use ISO 8601 format for log timestamps [AI generated]#1663
jsquyres wants to merge 1 commit into
aristocratos:mainfrom
jsquyres:fix/log-iso8601-timestamps

Conversation

@jsquyres
Copy link
Copy Markdown

@jsquyres jsquyres commented May 17, 2026

This PR is a drive-by / minor suggestion that I came across while working on #1662: clarify that the timestamps in the btop logs are UTC (not local time), so that it's unambiguous how to reconcile btop log timestamps against system logs.


Change log timestamps from the custom format to ISO 8601 with UTC indicator:

Before: 2026-05-14 (10:31:47) | DEBUG: ...
After: 2026-05-14T10:31:47Z | DEBUG: ...

The previous format used parentheses around the time and omitted any timezone indicator, making timestamps ambiguous. The logger uses std::chrono::system_clock which measures time since Unix epoch (UTC on all platforms), but the old format did not communicate this.

ISO 8601 with the Z suffix is an unambiguous, universally-recognized format parseable by standard functions across languages:

  • C++ (C++20): std::chrono::from_stream(ss, "%FT%TZ", tp)
  • C: strptime(s, "%Y-%m-%dT%H:%M:%SZ", &tm)
  • Python: datetime.fromisoformat("2026-05-14T10:31:47Z")

This matters for correlating btop log events with system logs (e.g., macOS pmset power events) that use local time with explicit timezone offsets.

Change log timestamps from the custom format to ISO 8601 with UTC
indicator:

  Before: 2026-05-14 (10:31:47) | DEBUG: ...
  After:  2026-05-14T10:31:47Z | DEBUG: ...

The previous format used parentheses around the time and omitted any
timezone indicator, making timestamps ambiguous. The logger uses
std::chrono::system_clock which measures time since Unix epoch (UTC
on all platforms), but the old format did not communicate this.

ISO 8601 with the Z suffix is an unambiguous, universally-recognized
format parseable by standard functions across languages:
- C++ (C++20): std::chrono::from_stream(ss, "%FT%TZ", tp)
- C: strptime(s, "%Y-%m-%dT%H:%M:%SZ", &tm)
- Python: datetime.fromisoformat("2026-05-14T10:31:47Z")

This matters for correlating btop log events with system logs (e.g.,
macOS pmset power events) that use local time with explicit timezone
offsets.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant