【问题标题】:XMLGregorianCalendar date comparisonXMLGregorianCalendar 日期比较
【发布时间】:2009-08-26 10:15:42
【问题描述】:

如何比较 XMLGregorianCalendar 的 2 个实例以找出哪个更大? 其中一个日期变量有一个值

date1 = 2009-02-23T05:54:17+05:30

另一个,

date2 = 2009-02-23T05:54:17.000

【问题讨论】:

    标签: java xml


    【解决方案1】:

    您可以将它们都转换为 GregorianCalendar 并比较它们(CalendarComparable)。 Calendar 的语义 compareTo() 方法是明确定义的,并且应该独立于时区工作:

    比较时间值(毫秒 纪元的偏移量)表示为 两个日历对象。

    所以试试这个:

    XMLGregorianCalendar date1 = ...
    XMLGregorianCalendar date2 = ...
    int result = date1.toGregorianCalendar().compareTo(date2.toGregorianCalendar());
    

    如果result 为正,则date1date2“晚”

    XMLGregorianCalendar 上的 compare() 方法本身做了一些相当奇怪的事情,对我来说看起来不是很有用。

    【讨论】:

    • 为什么不使用:date1.compare(date2) == DatatypeConstants.LESSER (as eg)?
    • stackoverflow.com/questions/14978328/… 深入探讨 XMLGregorianCalendar 如何进行比较
    • 使用 date1.compare(date2) 没有给我合乎逻辑的结果,上面的答案是正确的。
    猜你喜欢
    • 2021-06-26
    • 1970-01-01
    • 2011-12-31
    • 2018-11-24
    • 1970-01-01
    • 2018-12-14
    • 1970-01-01
    • 1970-01-01
    • 2012-12-20
    相关资源
    最近更新 更多