[FEATURE] Support LC_TIME locale for /usage command time formatting
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)
Problem Statement
The /usage command currently displays times in 12-hour format (e.g., "5am", "6pm") regardless of the system's LC_TIME locale setting.
Current Behavior
Current session
██████████████████████████████████▌ 69% used
Resets 5am (Europe/Saratov)
Current week (all models)
███████████████████████████████████████████▌ 87% used
Resets 6pm (Europe/Saratov)
Expected Behavior
When LC_TIME=en_GB.UTF-8 (or other locales that use 24-hour format) is set, the times should be displayed in 24-hour format:
Current session
██████████████████████████████████▌ 69% used
Resets 05:00 (Europe/Saratov)
Current week (all models)
███████████████████████████████████████████▌ 87% used
Resets 18:00 (Europe/Saratov)
Environment
- OS: Linux (WSL2)
- Claude CLI version: 2.1.2, still exists in 2.1.178
LC_TIMEis properly set in environment:LC_TIME=en_GB.UTF-8- System locale is configured and generated:
locale-gen en_GB.UTF-8
Steps to Reproduce
- Set
export LC_TIME=en_GB.UTF-8in.bashrc - Generate locale:
sudo locale-gen en_GB.UTF-8 - Verify locale is active:
locale | grep LC_TIMEshowsLC_TIME=en_GB.UTF-8 - Launch Claude CLI
- Run
/usagecommand - Observe that time is still shown in 12-hour format (5am, 6pm) instead of 24-hour format (05:00, 18:00)
Additional Context
Many international users prefer 24-hour time format, which is the standard in most countries outside the US. Respecting the LC_TIME locale would make the CLI experience more localized and user-friendly.
Originally reported in #20675 by @errordnk
Proposed Solution
Respect the system's LC_TIME locale setting when formatting timestamps in the /usage command output. This would make Claude CLI more internationally friendly and consistent with user expectations based on their locale settings.
@lfarkas found:
★ Insight ─────────────────────────────────────
JavaScript locale-aware time formatting: In JS, toLocaleTimeString() without arguments should respect the runtime's locale. However, if hour12: true is explicitly passed as an option, it overrides the locale and
forces AM/PM. The fix is to either omit hour12 entirely or use undefined as the locale parameter, which tells the runtime to use the system's LANG/LC_TIME environment variables. In Node.js/Bun, ICU data
availability also matters — some minimal builds don't include full locale data.
─────────────────────────────────────────────────
Here's what I found:
Location: The time formatting code is in the compiled Claude Code binary (~/.local/share/claude/versions/2.1.44), not in this repository. This repo contains plugins, scripts, and docs but not the main CLI
source.
Root cause: The /usage command's "Last updated" time uses toLocaleTimeString() with what appears to be a hardcoded hour12 option, forcing 12-hour AM/PM format regardless of your LC_TIME setting.
Fix: The source code would need to stop hardcoding hour12: true and let the locale determine the format.
Priority
Medium - Would be very helpful
Feature Category
CLI commands and flags
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗