格式化XMLGregorianCalendar

时间:2016-09-19 09:01:42

标签: java date-formatting

我想将包含日期的字符串转换为格式为" dd.mm.yyyy"的GregorianCalendar。 我使用了以下代码。我能够转换为所需的数据类型,但不是所需的格式。 对此有任何建议对我有帮助。

public class StringToCalander {
    public static void main(String args[]) throws DatatypeConfigurationException {
        String date="20160916";     
        Date dob=null;      
        DateFormat df=new SimpleDateFormat("yyyyMMdd");
        try {
            dob=df.parse( date );
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        GregorianCalendar cal = new GregorianCalendar();
        cal.setTime(dob);
        XMLGregorianCalendar xmlDate = DatatypeFactory.newInstance().newXMLGregorianCalendar(cal);
        System.out.println(" xml date value is:"+xmlDate);
        //output is 2016-09-16T00:00:00.000+02:00
        //but i need output in the format dd.mm.yyyy(16.09.2016)                
    }
}

2 个答案:

答案 0 :(得分:0)

试试这个。 (也为GregorianCalendar更新)

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.xml.datatype.DatatypeConfigurationException;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;

public class StringToCalendar {
    public static void main(String args[])
            throws DatatypeConfigurationException {

        String FORMATER = "ddMMyyyy";

        DateFormat format = new SimpleDateFormat(FORMATER);

        Date date2 = new Date();
        XMLGregorianCalendar gDateFormatted = DatatypeFactory.newInstance()
                .newXMLGregorianCalendar(format.format(date2));
        System.out.println("xmlDate via GregorianCalendar: " + gDateFormatted);

    }
}

答案 1 :(得分:0)

您可以使用Date-Object格式化XMLGregorianCalendar:

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.GregorianCalendar;

import javax.xml.datatype.DatatypeConfigurationException;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;

public class Main {
public static void main(String args[])
        throws DatatypeConfigurationException {

    String format = "dd'.'MM'.'yyyy";

    DateFormat formatter = new SimpleDateFormat(format);

    GregorianCalendar date = new GregorianCalendar();
    XMLGregorianCalendar xmlDate = DatatypeFactory.newInstance()
            .newXMLGregorianCalendar(date);

    Date dateObject = xmlDate.toGregorianCalendar().getTime();
    System.out.println("xml date value is: " + formatter.format(dateObject));

    }
}