【问题标题】:Creating a custom Chronology for arbitrary DatePicker为任意 DatePicker 创建自定义年表
【发布时间】:2019-04-21 17:23:21
【问题描述】:

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

我查看了实现 Chronology 或扩展 AbstractChronoolgy,但是我无法在这些课程中找到自己,也无法找到有关此用例的资源。

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

  • 一天的小时数
  • 一周中的天数和名称(即公历中的星期一 - 星期日,每个 24 小时)
  • 一个月的天数和月份的名称(即 1 月 - 12 月,公历 28-31 天)
  • 一年中的月数
  • 下一个较大比例的年数(在公历中为 100 个世纪,忽略几十年)
  • 存在哪些纪元,以及它们开始的时间(公历的公元前和公元 0 年)

这对于 java 的年表是否可行?如果是,我将如何解决这个问题?任何建议或链接将不胜感激。 我不需要完全实现可定制性,只需提示我可以在哪里为自定义日历/年表设置这些东西就足够了。

提前致谢 继续

【问题讨论】:

    标签: java time java-time


    【解决方案1】:

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

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

    【讨论】:

    • 这也是我发现的——我已经借助自定义 DatePicker UI 对日期和时间的想法进行了完整的自定义实现——正如我注意到的那样,虽然 GUI 框架我use 确实说它支持自定义年表,但是在这个意义上它受到严重限制。不管怎样,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-11
    • 1970-01-01
    • 2017-06-04
    • 2019-03-28
    • 1970-01-01
    • 2012-04-07
    • 1970-01-01
    相关资源
    最近更新 更多