怎么通过XMLGregorianCalendar获得当前时间及当前时间的前十分钟的时间 ,就是获取两个时间点? 
javax.xml.datatype.XMLGregorianCalendar call;
try {
call = javax.xml.datatype.DatatypeFactory.newInstance().newXMLGregorianCalendar();
System.out.println(call.toString());
javax.xml.datatype.Duration duration=      javax.xml.datatype.DatatypeFactory.newInstance().newDuration(-600000) ;
 call.add(duration);
         System.out.println(call.toString());
 
} catch (DatatypeConfigurationException e) 
        {
e.printStackTrace();
}这是结果  这个结果貌似不是当前的日期,错在哪里??
0111-11-02T14:17:21
0111-11-01T14:17:21.000

解决方案 »

  1.   

    好像是这样用的
    public static XMLGregorianCalendar asXMLGregorianCalendar(java.util.Date date) {
            if (date == null) {
                return null;
            } else {
                GregorianCalendar gc = new GregorianCalendar();
                gc.setTimeInMillis(date.getTime());
                return df.newXMLGregorianCalendar(gc);
            }
        }或者
    public static XMLGregorianCalendar toXmlGregorianCalendar(final long date) {
            try {
                final GregorianCalendar calendar = new GregorianCalendar();
                calendar.setTimeInMillis(date);
                return DatatypeFactory.newInstance().newXMLGregorianCalendar(
                    calendar);
            }
            catch (final DatatypeConfigurationException ex) {
                System.out.println("Unable to convert date '%s' to an XMLGregorianCalendar object");
            }
        }通过Date等来转
      

  2.   

    比我之前的方法简单多了 怎么根据已知时间获得另一个时间呢 比如说比当前时间早五分钟? 还有一个疑问XMLGregorianCalendar 类型本身不能获得当前时间么?为什么一定要转换呢?
    javax.xml.datatype.XMLGregorianCalendar dateType = javax.xml.datatype.DatatypeFactory.newInstance().newXMLGregorianCalendar();
    我直接这么获得就报错了这是为什么呀  
        
      

  3.   

    这得看这类是干吗用的,用来作为某某数据类型的一种表现形式,另外jdk中Calendar,Date等也都已经实现了
    Representation for W3C XML Schema 1.0 date/time datatypes. Specifically, these date/time datatypes are DatatypeConstants.DATETIME, DatatypeConstants.TIME, DatatypeConstants.DATE, DatatypeConstants.GYEARMONTH, DatatypeConstants.GMONTHDAY, DatatypeConstants.GYEAR, DatatypeConstants.GMONTH, and DatatypeConstants.GDAY defined in the XML Namespace "http://www.w3.org/2001/XMLSchema". These datatypes are normatively defined in W3C XML Schema 1.0 Part 2, Section 3.2.7-14.因为无参方法是没有意义值的
    public abstract XMLGregorianCalendar newXMLGregorianCalendar()
    Create a new instance of an XMLGregorianCalendar.All date/time datatype fields set to DatatypeConstants.FIELD_UNDEFINED or null.
    Returns:
    New XMLGregorianCalendar with all date/time datatype fields set to DatatypeConstants.FIELD_UNDEFINED or null.Canlendar可以通过对应的域相减,通过milliseconds也可以直接减等等
      

  4.   

    javax.xml.datatype.Duration duration= javax.xml.datatype.DatatypeFactory.newInstance().newDuration(-864000000) ;
    //  dateNow.add(duration);这两句就可以改变时间点了 嘎嘎