internationalized/date
-
用于日历、日期相关工具
-
提供CalendarDate 对象。这个对象提供了丰富的日期操作方法
常见用法
import {parseDate, CalendarDate, parseZonedDateTime} from '@internationalized/date';
// 1. 从字符串解析 (ISO 8601)
const date = parseDate('2023-10-25'); // 返回 CalendarDate
// 2. 直接构造
const specificDate = new CalendarDate(2023, 10, 25);
// 3. 获取“今天” (必须指定时区,因为不同时区的“今天”可能不同)
import {getLocalTimeZone, today} from '@internationalized/date';
const now = today(getLocalTimeZone());
日期计算与操作
// 加减日期
let date = parseDate('2023-10-25');
// 加 1 周
let nextWeek = date.add({ weeks: 1 });
// 减 2 个月
let prevMonth = date.subtract({ months: 2 });
// 循环字段 (Cycle): 常用于调整特定字段而不改变更大的单位
// 例如:在不改变年份和月份的情况下,将日期设为 5 号
// 注意:如果当前月份没有 31 号,cycle 可能会有不同行为,但在日历 UI 交互中很有用
let newDate = date.set({ day: 5 });