import { DATE_TIME_FORMAT, formatDate, parseDate } from "./date"; describe("date", () => { const f = (date: Date): string => formatDate(date, DATE_TIME_FORMAT); test("formatDate 格式化 YYYY-MM-DD HH", () => { const date = new Date("2012/12/12 12:12:12"); expect(formatDate(date, "YYYY-MM-DD HH")).toBe("2012-12-12 12"); }); test("formatDate 兼容大小写形式, 不同的日期库有些使用 yyyy 有些 YYYY", () => { const date = new Date("2012/12/12 12:12:12"); expect(formatDate(date, "YYYY-MM-DD HH:mm:ss")).toBe("2012-12-12 12:12:12"); }); test("parseDate 支持常见的格式", () => { // 常见的两种格式 expect(f(parseDate("2012-12-12 12:12:12")!)).toBe("2012-12-12 12:12:12"); expect(f(parseDate("2012/12/12 12:12:12")!)).toBe("2012-12-12 12:12:12"); expect(f(parseDate("2012-1-1 12:12:12")!)).toBe("2012-01-01 12:12:12"); // 不补零形式 expect(f(parseDate("2012-12-12T16:00:00.000Z")!)).toBe( "2012-12-13 00:00:00" ); expect(f(parseDate("2012/1/1 12:12:12")!)).toBe("2012-01-01 12:12:12"); // 不补零形式 // 单日期 expect(f(parseDate("2012/12/12")!)).toBe("2012-12-12 00:00:00"); // 日期加分钟 expect(f(parseDate("2012/12/12 12:12")!)).toBe("2012-12-12 12:12:00"); // 日期对象 expect(f(parseDate(new Date("2012/12/12 12:12:12"))!)).toBe( "2012-12-12 12:12:12" ); // 毫秒 expect(f(parseDate(new Date("2012/12/12 12:12:12").getTime())!)).toBe( "2012-12-12 12:12:12" ); // 自定义格式 expect(f(parseDate("2012 12 12 12/12", "YYYY MM DD HH/mm")!)).toBe( "2012-12-12 12:12:00" ); }); });