最近总被问及javax.xml.datatype.XMLGregorianCalendar。
XMLGregorianCalendar是GregorianCalendar(格里历,阳历)在XML领域中的对应类,算是Webservice、JAXB这些应用经常出现的关于日期时间的经典入门问题。
使用javax.xml.datatype.DatatypeFactory、java.text.SimpleDateFormat、java.util.GregorianCalendar可以轻松解决XMLGregorianCalendar相关问题。
//GregorianCalendar-〉XMLGregorianCalendar
GregorianCalendar nowGregorianCalendar =new GregorianCalendar();
XMLGregorianCalendar xmlDatetime= DatatypeFactory.newInstance().newXMLGregorianCalendar(nowGregorianCalendar);
//XMLGregorianCalendar ->GregorianCalendar
nowGregorianCalendar = xmlDatetime.toGregorianCalendar();
//GregorianCalendar->String
SimpleDateFormat simpleDateFormat =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateTimeString=simpleDateFormat.format(nowGregorianCalendar.getTime());
//GregorianCalendar->Date
Date date = nowGregorianCalendar.getTime();
//Date->GregorianCalendar
nowGregorianCalendar.setTime(date);
//String->Date
date=simpleDateFormat.parse("1981-07-22 00:00:00");
//Date->String
String dateString=simpleDateFormat.format(date.getTime());
//Sring->XMLGregorianCalendar
nowGregorianCalendar.setTime(simpleDateFormat.parse("1981-07-22 00:00:00"));
xmlDatetime= DatatypeFactory.newInstance().newXMLGregorianCalendar(nowGregorianCalendar);
//XMLGregorianCalendar->Sring
simpleDateFormat.format(xmlDatetime.toGregorianCalendar().getTime());
附:java.util.GregorianCalendar与java.util.Date的关系如同日历与日历中的某一页。java.util.GregorianCalendar与.Net类型DateTime更相像。
珍爱生命,远离JAVA