java中XMLGregorianCalendar类型和Date类型之间的相互转换

时间:2022-04-16 05:24:21

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.GregorianCalendar;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;

/**
 * XMLGregorianCalendar类型和Date类型之间的相互转换
 * @author Xin
 * 2010-06-12
 */

public class DateTest {

public XMLGregorianCalendar convertToXMLGregorianCalendar(Date date) {

GregorianCalendar cal = new GregorianCalendar();
        cal.setTime(date);
        XMLGregorianCalendar gc = null;
        try {
            gc = DatatypeFactory.newInstance().newXMLGregorianCalendar(cal);
        } catch (Exception e) {

e.printStackTrace();
        }
        return gc;
    }
 
     public  Date convertToDate(XMLGregorianCalendar cal) throws Exception{
         GregorianCalendar ca = cal.toGregorianCalendar();
         return ca.getTime();
     }
 
     public static void main(String[] args) {
         DateTest dateTest = new DateTest();
         XMLGregorianCalendar d = dateTest.convertToXMLGregorianCalendar(new Date());
         System.out.println(d.getDay());
         XMLGregorianCalendar cal = null;
         try {
             cal = DatatypeFactory.newInstance().newXMLGregorianCalendar();
             cal.setMonth(06);
             cal.setYear(2010); 
             Date date = dateTest.convertToDate(cal);
             String format = "yyyy-MM-dd HH:mm:ss";
             SimpleDateFormat formatter = new SimpleDateFormat(format);
             System.out.println(formatter.format(date));
         } catch (Exception e) {
             e.printStackTrace();
         }
     }
}

参考:http://blog.163.com/zhaowenchao_vip/blog/static/171515144201152141214975/