Summary
A user reported that transaction times should account for the country/local timezone. They shared a screenshot and wrote: "some changes on difference in time based on a country would be nice".
From code inspection, most transaction timestamps already render in the device's local timezone:
app/components/transaction-date/transaction-date.tsx uses new Date(createdAt * 1000).toLocaleString(locale, options) with no forced timezone when rendering transaction detail times.
app/components/transaction-date/transaction-date.tsx / app/utils/date.ts also use local Date methods for transaction list relative dates and short dates unless a timezone is explicitly injected for tests.
However, the send-completed receipt screen still formats the time through formatUnixTimestampYMDHM, which uses toISOString() and therefore forces UTC:
app/utils/date.ts: formatUnixTimestampYMDHM(timestampInSeconds) returns new Date(...).toISOString().slice(0, 16).replace("T", " ")
app/screens/send-bitcoin-screen/send-bitcoin-completed-screen.tsx displays that value in the Time row.
Current behavior
On the send-completed screen, the Time row is displayed in UTC because toISOString() is used.
Expected behavior
Display the send-completed Time row in the user's local/device timezone, consistent with transaction detail/list behavior. Ideally use locale-aware formatting, or add an explicit timezone label if product wants a fixed timezone.
Notes
Summary
A user reported that transaction times should account for the country/local timezone. They shared a screenshot and wrote: "some changes on difference in time based on a country would be nice".
From code inspection, most transaction timestamps already render in the device's local timezone:
app/components/transaction-date/transaction-date.tsxusesnew Date(createdAt * 1000).toLocaleString(locale, options)with no forced timezone when rendering transaction detail times.app/components/transaction-date/transaction-date.tsx/app/utils/date.tsalso use localDatemethods for transaction list relative dates and short dates unless a timezone is explicitly injected for tests.However, the send-completed receipt screen still formats the time through
formatUnixTimestampYMDHM, which usestoISOString()and therefore forces UTC:app/utils/date.ts:formatUnixTimestampYMDHM(timestampInSeconds)returnsnew Date(...).toISOString().slice(0, 16).replace("T", " ")app/screens/send-bitcoin-screen/send-bitcoin-completed-screen.tsxdisplays that value in theTimerow.Current behavior
On the send-completed screen, the
Timerow is displayed in UTC becausetoISOString()is used.Expected behavior
Display the send-completed
Timerow in the user's local/device timezone, consistent with transaction detail/list behavior. Ideally use locale-aware formatting, or add an explicit timezone label if product wants a fixed timezone.Notes
formatUnixTimestampYMDHMor replace it with a local-time formatter that can accept an injected timezone for deterministic tests.