EraParser.js 922 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. import { Parser } from "../Parser.js";
  2. export class EraParser extends Parser {
  3. priority = 140;
  4. parse(dateString, token, match) {
  5. switch (token) {
  6. // AD, BC
  7. case "G":
  8. case "GG":
  9. case "GGG":
  10. return (
  11. match.era(dateString, { width: "abbreviated" }) ||
  12. match.era(dateString, { width: "narrow" })
  13. );
  14. // A, B
  15. case "GGGGG":
  16. return match.era(dateString, { width: "narrow" });
  17. // Anno Domini, Before Christ
  18. case "GGGG":
  19. default:
  20. return (
  21. match.era(dateString, { width: "wide" }) ||
  22. match.era(dateString, { width: "abbreviated" }) ||
  23. match.era(dateString, { width: "narrow" })
  24. );
  25. }
  26. }
  27. set(date, flags, value) {
  28. flags.era = value;
  29. date.setFullYear(value, 0, 1);
  30. date.setHours(0, 0, 0, 0);
  31. return date;
  32. }
  33. incompatibleTokens = ["R", "u", "t", "T"];
  34. }