7

我在将日历对象转换为 .xml 格式的 XMLGregorian 日历时遇到了一些问题YYYY-MM-DD HH:mm:ss

我目前的代码是:

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 来解析日期的字符串表示,但是我的日期是作为日历对象提供给我的,而不是字符串。

我很感激朝着正确的方向轻推,以帮助我解决这个问题。

4

3 回答 3

3

XMLGregorianCalendar 具有您无法更改的特定 W3C 字符串表示形式。

但是,您可以Date使用SimpleDateFormat.

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateStr = dateFormat.format(cDate);

您可以DateXMLGregorianCalendar对象中获取对象,如下所示:

xmlCalendar.getGregorianCalendar().getDate()
于 2013-01-03T20:34:45.487 回答
1

DateFormat#format接受一个Object参数。从内存中,它应该接受一个Calendar对象,如果不接受,它将接受一个Date对象,因此您可以将Calendar#getTime其用作更坏的情况

您可以使用SimpleDateFormat的实例来指定自定义格式。这将确保不同系统的结果始终相同

于 2013-01-03T20:30:16.590 回答
0

你看过这个教程它可能会有所帮助吗?

http://www.vogella.com/articles/JavaDateTimeAPI/article.html

特别是这段代码是一个很好的例子:

// Format the output with leading zeros for days and month
SimpleDateFormat date_format = new SimpleDateFormat("yyyyMMdd");
System.out.println(date_format.format(cal1.getTime()));
于 2013-01-03T20:31:04.787 回答