1k-date-formatting
SKILL.md
Date Formatting
Guidelines for consistent date and time formatting across OneKey applications.
Critical Rule
NEVER use native JavaScript date methods:
// ❌ FORBIDDEN
date.toLocaleDateString()
date.toLocaleString()
date.toISOString()
new Intl.DateTimeFormat().format(date)
// ✅ CORRECT
import { formatDate } from '@onekeyhq/shared/src/utils/dateUtils';
formatDate(date, { hideSeconds: true });
Quick Reference
| Function | Use Case | Example Output |
|---|---|---|
formatDate(date, options?) |
Full date and time | 2024/01/15, 14:30 |
formatTime(date, options?) |
Time only | 14:30:45 |
formatRelativeDate(date) |
Relative display | Today, Yesterday |
formatDistanceToNow(date) |
Time distance | 2 hours ago |
formatDateFns(date, format?) |
Custom format | Based on template |
Common Patterns
Transaction History
import { formatDate } from '@onekeyhq/shared/src/utils/dateUtils';
// Hide year if current year, hide seconds
<SizableText>
{formatDate(item.createdAt, { hideTheYear: true, hideSeconds: true })}
</SizableText>
Custom Format
// Use format template
{formatDate(item.timestamp, { formatTemplate: 'yyyy-LL-dd HH:mm' })}
React Hook (for dynamic updates)
import useFormatDate from '@onekeyhq/kit/src/hooks/useFormatDate';
function MyComponent() {
const { formatDate } = useFormatDate();
return <SizableText>{formatDate(date, { hideSeconds: true })}</SizableText>;
}
Format Options
interface IFormatDateOptions {
hideYear?: boolean; // Always hide year
hideMonth?: boolean; // Always hide month
hideTheYear?: boolean; // Hide year if current year
hideTheMonth?: boolean; // Hide month if current month
hideTimeForever?: boolean; // Hide time portion
hideSeconds?: boolean; // Hide seconds (HH:mm)
formatTemplate?: string; // Custom date-fns format
}
Detailed Guide
For comprehensive date formatting rules and examples, see date-formatting.md.
Topics covered:
- Core utilities from
@onekeyhq/shared/src/utils/dateUtils - Available formatting functions
- Options reference and format templates
- Common patterns for transactions, history, and relative time
- React hooks for dynamic updates
- Locale-aware formatting
- Real-world examples
- Troubleshooting
Key Files
| Purpose | File Path |
|---|---|
| Core utilities | packages/shared/src/utils/dateUtils.ts |
| React hook | packages/kit/src/hooks/useFormatDate.ts |
| Locale mapping | packages/shared/src/locale/dateLocaleMap.ts |
Related Skills
/1k-i18n- Internationalization and locale handling/1k-coding-patterns- General coding patterns
Weekly Installs
60
Repository
onekeyhq/app-monorepoGitHub Stars
2.3K
First Seen
Jan 24, 2026
Security Audits
Installed on
gemini-cli55
codex54
opencode54
github-copilot53
claude-code52
cursor51