【问题标题】:How to reset an XMLGregorianCalendar to new values如何将 XMLGregorianCalendar 重置为新值
【发布时间】:2011-08-22 14:38:51
【问题描述】:

我将每天处理数百万次日期。我创建了一个 XMLGregorianCalendar 来处理来自 XML 提要的日期:

XMLGregorianCalendar xCalEst = null;
xCalEst = DatatypeFactory.newInstance().newXMLGregorianCalendar("2011-08-09T21:50:00Z");

日期字符串将来自另一个来源。由于我需要经常这样做,我在想,出于性能原因,我应该将日历创建为静态并只创建一次。问题是没有(简单的)方法可以使用新的传入日期字符串重置日历。

IE:我希望能够做的是:xCalEst.reset("2011-08-09T21:55:00Z");

我是否过于关注性能,只是让对象每次都被创建和销毁,还是有一种简单的方法可以做到这一点?

请注意,我是一名老 C 程序员,刚开始接触 Java。

【问题讨论】:

    标签: java date calendar xmldatasource


    【解决方案1】:

    我从未尝试过,但可以使用 setTimesetTimeZone 之类的方法。这种方法只有在您按顺序发送消息时才有效,例如在一个线程中。由于 Java(与 C 不同)是一种面向对象的语言,因此它的自然行为是创建和处理对象。您应该首先证明XMLGregorianCalendar 的顺序创建是性能/内存瓶颈,然后尝试优化。总的来说,不要低估垃圾收集的力量:-)

    鉴于您的示例,您应该首先考虑“缓存”DataTypeFactory:

    DatatypeFactory dtf = DatatypeFactory.newInstance();
    dtf.newXMLGregorianCalendar("2011-08-09T21:50:00Z");
    

    【讨论】:

      猜你喜欢
      • 2018-01-11
      • 1970-01-01
      • 2013-09-22
      • 1970-01-01
      • 2012-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多