为任意DatePicker创建自定义年表

时间:2019-04-21 17:23:22

标签: java time java-time

我有一个用例,希望用户可以在UI中指定自己的日历。为此,我想创建一个自定义年表,以指定有关日历的所有信息。 我使用编年史而非自定义类的原因是,我希望能够使其与标准编年史兼容。

我已经看过实现Chronology或扩展AbstractChronoolgy的情况,但是在这些类中我找不到自己,也找不到有关此用例的资源。

这些是我需要能够为每个年表自定义的东西:

  • 每天的小时数
  • 一周中天的数量和名称(即公历中的周一至周日,每个24h)
  • 一个月中的天数和月份名称(即1月至12月,在公历中为28-31天)
  • 一年中的月份数量
  • 下一个更大规模的年限(公历100个世纪,省略了几十年)
  • 哪个时代存在,以及什么时代开始(公历的公元前和公元0年)

用Java的编年史可行吗?如果是,我将如何处理?任何建议或链接将不胜感激。 我不需要可定制性的完整实现,仅提示我可以在何处设置自定义日历/年表即可。

预先感谢 滚压

1 个答案:

答案 0 :(得分:1)

不完全是。 Chronology用于表示ISO / Gregorian以外的现有日历系统。它为周,月,年,时代的系统分配日期。它一天之内不包含时间。因此,它无法为您提供一天中其他小时数的可能性。 (不过,您可以实现TemporalUnit接口以将“您的小时”表示为一天的一小部分。)

要实现Chronology,请先扩展AbstractChronology。您可能需要在此过程中实现接口ChronoLocalDateChronoLocalDateTimeEra等。最后,您必须使用ServiceLoader注册您的实现;参见the API documentation of Chronology