首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能格式化为XMLGregorianCalendar

不能格式化为XMLGregorianCalendar
EN

Stack Overflow用户
提问于 2015-12-07 01:29:16
回答 1查看 4K关注 0票数 1

我将字符串日期转换为XMLGregorianCalendar

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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)?的有限长字符序列组成。

在格式上唯一的潜在选择是在“词汇表示”和“规范表示”之间。格式设置(201402102014/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)

然后,产出如下:

代码语言:javascript
复制
2014-02-10
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34125097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档