当前位置:  开发笔记 > 编程语言 > 正文

在XMLGregorianCalendar中减去一天

如何解决《在XMLGregorianCalendar中减去一天》经验,为你挑选了2个好方法。

如何在XMLGregorianCalendar中减去一天?同时减去如何应对以下问题:

在该月的第一天,它不会变为负值

如果是一年的1月1日,它需要回到正常的一年

和其他类似的东西.

请不要建议使用像Joda-Time这样的任何其他库.我知道它们很棒,但我只需要使用XMLGregorianCalendar来完成它.

谢谢



1> Jon Skeet..:

只需转换为正常GregorianCalendar,在那里做算术,然后转换回:

GregorianCalendar calendar = xmlCalendar.toGregorianCalendar();
calendar.add(Calendar.DAY_OF_MONTH, -1);
xmlCalendar = datatypeFactory.newXMLGregorianCalendar(calendar);

(这假设您已经拥有了DatatypeFactory.DatatypeFactory.newInstance()如果有必要,您可以随时致电.)



2> Michael Glav..:

XMLGregorianCalendar有一个add(Duration)方法,您也可以用于此计算,而无需转换为GregorianCalendar第一个.这是一个例子:

DatatypeFactory df = DatatypeFactory.newInstance();
XMLGregorianCalendar calendar1 = ...;
XMLGregorianCalendar calendar2 = (XMLGregorianCalendar) calendar1.clone();
calendar2.add(df.newDuration("-P1D"));

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有