frontend: show Energy/DSMR/meter times in local timezone, 24h
Backend serializes SQLite-read (naive) UTC datetimes without a Z, so the browser was parsing them as local time -> the UI effectively showed UTC values. - New src/utils/datetime.ts: treats a tz-less timestamp as UTC, then formats in the browser's local timezone with hour12:false (no AM/PM). - Applied to Energy tabs (contracts/prices/costs/DSMR), per-device readings & trends, and the meter readings table on the Records page. - CostView Today/This month now use local day boundaries (queries stay UTC ISO). - Untouched: location/poo (raw Zulu strings), the map, and query-window params. - Tests are timezone-independent (verified under TZ=America/Los_Angeles).
This commit is contained in:
@@ -26,6 +26,7 @@ import {
|
||||
Badge,
|
||||
} from '@mantine/core'
|
||||
import { useDsmrLatest } from './hooks'
|
||||
import { formatLocalDateTime } from '../utils/datetime'
|
||||
|
||||
/** Default auto-refresh interval (ms) — DSMR ingest stores ~one row per 10 s. */
|
||||
const AUTO_REFRESH_INTERVAL_MS = 10_000
|
||||
@@ -117,7 +118,7 @@ function DsmrContent({ isLoading, isError, data }: DsmrContentProps) {
|
||||
</Badge>
|
||||
{data.recorded_at && (
|
||||
<Text size="sm" c="dimmed" data-testid="dsmr-recorded-at">
|
||||
recorded at {new Date(data.recorded_at).toLocaleString()}
|
||||
recorded at {formatLocalDateTime(data.recorded_at)}
|
||||
</Text>
|
||||
)}
|
||||
</Group>
|
||||
|
||||
Reference in New Issue
Block a user