我将字符串日期转换为XMLGregorianCalendar
public static void convertStringToXMLDate(String dateString) {
Date dob=null;
DateFormat df=new SimpleDateFormat("yyyyMMdd");
try {
dob=df.parse( "20140210" );
} catch (ParseException e) {
e.printStackTrace();
}
GregorianCalendar cal = new GregorianCalendar();
cal.setTime(dob);
XMLGregorianCalendar xmlDate3;
try {
xmlDate3 = DatatypeFactory.newInstance().newXMLGregorianCalendar(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH)+1, cal.get(Calendar.DAY_OF_MONTH),dob.getHours(),dob.getMinutes(),dob.getSeconds(),DatatypeConstants.FIELD_UNDEFINED, DatatypeConstants.FIELD_UNDEFINED);
System.out.println(xmlDate3);
} catch (DatatypeConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}此代码打印xmlDate3 = 2014-02-10T00:00:00。
如何在XMLGregorianCalendar中将其格式化为20140210或2014/02/10
发布于 2015-12-07 01:54:44
你不能。XMLGregorianCalendar是一个(来自javadoc):
W3C XMLSchema1.0日期/时间数据类型的表示.在W3C XMLSchema1.0第2部分3.2.7-14节中规范地定义。
如您所见,dateTime的参考规范定义是:
3.2.7.1词汇表示 ·词汇空间· of dateTime由格式:
'-'? yyyy '-' mm '-' dd 'T' hh ':' mm ':' ss ('.' s+)? (zzzzzz)?的有限长字符序列组成。
在格式上唯一的潜在选择是在“词汇表示”和“规范表示”之间。格式设置(20140210和2014/02/10)对于XML定义的dateTime值无效。
现在,如果您实际上想要一个XML date值,而不是dateTime,那么您应该调用newXMLGregorianCalendarDate(int year, int month, int day, int timezone)而不是newXMLGregorianCalendar(int year, int month, int day, int hour, int minute, int second, int millisecond, int timezone)。
然后,产出如下:
2014-02-10https://stackoverflow.com/questions/34125097
复制相似问题