date.test.ts 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import { DATE_TIME_FORMAT, formatDate, parseDate } from "./date";
  2. describe("date", () => {
  3. const f = (date: Date): string => formatDate(date, DATE_TIME_FORMAT);
  4. test("formatDate 格式化 YYYY-MM-DD HH", () => {
  5. const date = new Date("2012/12/12 12:12:12");
  6. expect(formatDate(date, "YYYY-MM-DD HH")).toBe("2012-12-12 12");
  7. });
  8. test("formatDate 兼容大小写形式, 不同的日期库有些使用 yyyy 有些 YYYY", () => {
  9. const date = new Date("2012/12/12 12:12:12");
  10. expect(formatDate(date, "YYYY-MM-DD HH:mm:ss")).toBe("2012-12-12 12:12:12");
  11. });
  12. test("parseDate 支持常见的格式", () => {
  13. // 常见的两种格式
  14. expect(f(parseDate("2012-12-12 12:12:12")!)).toBe("2012-12-12 12:12:12");
  15. expect(f(parseDate("2012/12/12 12:12:12")!)).toBe("2012-12-12 12:12:12");
  16. expect(f(parseDate("2012-1-1 12:12:12")!)).toBe("2012-01-01 12:12:12"); // 不补零形式
  17. expect(f(parseDate("2012-12-12T16:00:00.000Z")!)).toBe(
  18. "2012-12-13 00:00:00"
  19. );
  20. expect(f(parseDate("2012/1/1 12:12:12")!)).toBe("2012-01-01 12:12:12"); // 不补零形式
  21. // 单日期
  22. expect(f(parseDate("2012/12/12")!)).toBe("2012-12-12 00:00:00");
  23. // 日期加分钟
  24. expect(f(parseDate("2012/12/12 12:12")!)).toBe("2012-12-12 12:12:00");
  25. // 日期对象
  26. expect(f(parseDate(new Date("2012/12/12 12:12:12"))!)).toBe(
  27. "2012-12-12 12:12:12"
  28. );
  29. // 毫秒
  30. expect(f(parseDate(new Date("2012/12/12 12:12:12").getTime())!)).toBe(
  31. "2012-12-12 12:12:12"
  32. );
  33. // 自定义格式
  34. expect(f(parseDate("2012 12 12 12/12", "YYYY MM DD HH/mm")!)).toBe(
  35. "2012-12-12 12:12:00"
  36. );
  37. });
  38. });