我正在尝试表示年或年 - 月的精确度的时间信息。例如。 “ 1998 '患者有右手腕骨折史;自 2015年10月以来头痛的历史'
我查看了Joda-Time YearMonth org.joda.time.YearMonth
但不仅仅是'年'。但即使是YearMonth似乎也有点不连贯。 E.g。
(clj-time.core/year-month 2015 02)
(clj-time.core/date-time 2015 11 15)
=> #object[org.joda.time.YearMonth 0x7a19d121 "2015-02"]
=> #object[org.joda.time.DateTime 0x5625de93 "2015-11-15T00:00:00.000Z"]
你可以做一些操作,例如:
(clj-time.core/month (clj-time.core/year-month 2015 02))
(clj-time.core/month (clj-time.core/date-time 2015 11 15))
=> 2
=> 11
但不是这样:
(clj-time.core/before? (clj-time.core/year-month 2015 02)
(clj-time.core/date-time 2015 11 15))
=> Exception thrown: java.lang.ClassCastException (org.joda.time.DateTime
cannot be cast to org.joda.time.ReadablePartial)
和java.time
的类似结果:
(.compareTo (java.time.Year/of 2007) (java.time.LocalDate/now))
=> Exception thrown: java.lang.ClassCastException (java.time.LocalDate
cannot be cast to java.time.Year)
我希望能够做的是代表时间实体,例如Year和YearMonth,它们的精确度 - 不多也不少,并且还用它们进行日期数学运算。 E.g:
有没有人为此找到了一个好的解决方案?或者我应该看看构建自己的解决方案/库?