Java 将日历转换为具有特定格式的XMLGregorianCalendar
在将日历对象转换为格式为Java 将日历转换为具有特定格式的XMLGregorianCalendar,java,Java,在将日历对象转换为格式为YYYY-MM-DD HH:MM:ss的XMLGregorian日历时,我遇到了一些问题 我目前的代码是: Calendar createDate = tRow.getBasic().getDateCreated(0).getSearchValue(); Date cDate = createDate.getTime(); GregorianCalendar c = new GregorianCalendar(); c.setTime(cDate); XMLGregori
YYYY-MM-DD HH:MM:ss
的XMLGregorian日历时,我遇到了一些问题
我目前的代码是:
Calendar createDate = tRow.getBasic().getDateCreated(0).getSearchValue();
Date cDate = createDate.getTime();
GregorianCalendar c = new GregorianCalendar();
c.setTime(cDate);
XMLGregorianCalendar date2 = DatatypeFactory.newInstance().newXMLGregorianCalendar(c);
返回日期为2013-01-03T11:50:00.000-05:00
我想把它改为2013-01-03 11:50:00
我已经检查了一些帖子,它们使用DateFormat解析日期的字符串表示形式,但是我的日期是作为日历对象而不是字符串提供给我的
我希望你能朝着正确的方向轻推我,帮助我解决这个问题 DateFormat#format
接受一个对象
参数。从内存中,它应该接受一个Calendar
对象,否则,它将接受一个Date
对象,因此您可以使用Calendar\getTime
作为更坏的情况
可以使用的实例指定自定义格式。这将确保不同系统的结果始终相同您是否看过本教程,它可能会有所帮助 具体而言,此代码是一个很好的示例:
// Format the output with leading zeros for days and month
SimpleDateFormat date_format = new SimpleDateFormat("yyyyMMdd");
System.out.println(date_format.format(cal1.getTime()));
XMLGregorianCalendar具有您无法更改的特定W3C字符串表示形式 但是,您可以使用
SimpleDateFormat
设置日期的格式
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateStr = dateFormat.format(cDate);
您可以从XMLGregorianCalendar
对象获取Date
对象,如下所示:
xmlCalendar.getGregorianCalendar().getDate()
我不需要从XMLGregorianCalendar获取日期,而是设置它。XMLGregorianCalendar是接收web服务所必需的。是的,如果您希望将日期的格式设置为与默认日期不同的格式,则需要使用
date
对象。你从其中一个开始,所以你根本不需要XMLGregorianCalendar。是的,我希望我可以避免编辑从XMLGreg生成的类。。。到目前为止,但似乎我必须这样做XMLGregorianCalendar使用W3C标准表示日期。如果web服务在您的控制之下,一个更优雅的方法可能是让它接受标准。否则SimpleDateFormat或Joda time看起来是前进的方向……这对我来说不起作用。我必须将SimpleDataFormat声明为新SimpleDataFormat(“yyyy-MM-dd'T'HH:MM:ss”)代码>中间有一个'T'
,因为XMLGregorianCalendar
需要它