java - 为任意 DatePicker 创建自定义年表

标签 java time java-time

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

我已经考虑过实现 Chronology 或扩展 AbstractChronoolgy,但是我在这些类(class)中找不到自己,也无法找到有关此用例的资源.

这些是我需要能够针对每个年表进行自定义的内容:

  • 一天的小时数
  • 一周中的天数和名称(即公历中的周一至周日,各 24 小时)
  • 一个月中的天数和月份名称(即公历中的 1 月 - 12 月,有 28-31 天)
  • 一年中有多少个月
  • 下一个更大尺度的年数(公历中的 100 个世纪,省略数十年)
  • 存在哪些时代,以及开始时间(公元前和公元,公历的第 0 年)

这对于java的时间顺序来说可行吗?如果是,我将如何处理这个问题?任何建议或链接将不胜感激。 我不需要完全实现可定制性,只需提示我可以在哪里为自定义日历/年表设置这些内容就足够了。

提前致谢 福林

最佳答案

不完全是。 Chronology 旨在表示 ISO/公历以外的现有日历系统。它将日期分配给周、月、年、纪元系统。它不涵盖一天内的时间。因此,它无法为您提供一天中其他小时数的可能性。 (不过,您可以实现 TemporalUnit 接口(interface)来将“您的时间”表示为一天的一小部分。)

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

关于java - 为任意 DatePicker 创建自定义年表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55785020/

相关文章:

java - docx4j : "No suitable JAXB implementation available" runtime error Java 1. 5

SQLite 查询日期等于今天

Java8 java.time : how to change the day of the week and the start time of the day?

java - 如何将 UTC 时间转换为其他时区 ("CST","IST")

java - php解析json到android时显示空

java - 如何禁用在后台服务中运行的通知

Java robot.mouseMove(x, y) 没有产生正确的结果

algorithm - 这是次二次时间吗?

java - 如何将MySql中的时间格式转换为Java中的字符串?

Java 8 DateTimeFormatter 符号 "F"