From dbf75716250c9d358e0f48847d498b0588436904 Mon Sep 17 00:00:00 2001 From: nandi Date: Fri, 31 Jul 2026 14:15:32 -0700 Subject: [PATCH] Use 12-hour timestamps for anomaly labels --- src/io.rs | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/io.rs b/src/io.rs index 6a2d1ee..3674e20 100644 --- a/src/io.rs +++ b/src/io.rs @@ -438,9 +438,13 @@ pub fn format_hz(rate: f64) -> String { } } -/// Local wall-clock `HH:MM:SS` for anomaly stamps. +/// Local wall-clock 12-hour stamp for anomaly labels (`3:04:05 PM`). pub fn format_local_hms() -> String { - if let Ok(out) = std::process::Command::new("date").arg("+%H:%M:%S").output() { + // %l = space-padded hour 1–12; trim so we get "3:04:05 PM" not " 3:…". + if let Ok(out) = std::process::Command::new("date") + .arg("+%l:%M:%S %p") + .output() + { if out.status.success() { let s = String::from_utf8_lossy(&out.stdout).trim().to_string(); if !s.is_empty() { @@ -448,14 +452,19 @@ pub fn format_local_hms() -> String { } } } - // Fallback: seconds since epoch mod day (UTC-ish). + // Fallback: 12-hour from epoch seconds (UTC-ish). use std::time::{SystemTime, UNIX_EPOCH}; let secs = SystemTime::now() .duration_since(UNIX_EPOCH) .map(|d| d.as_secs()) .unwrap_or(0); - let h = (secs / 3600) % 24; + let h24 = (secs / 3600) % 24; let m = (secs / 60) % 60; let s = secs % 60; - format!("{h:02}:{m:02}:{s:02}") + let ampm = if h24 < 12 { "AM" } else { "PM" }; + let h12 = match h24 % 12 { + 0 => 12, + h => h, + }; + format!("{h12}:{m:02}:{s:02} {ampm}") } -- 2.51.2