字符串日期到 xmlgregoriancalendar 的转换

2022-09-01 02:58:01

我写了这个函数:

public static XMLGregorianCalendar getXMLGregorianCalendar(String date) throws OmniException{
    XMLGregorianCalendar xmlCalender=null;
    GregorianCalendar calender = new GregorianCalendar();
    calender.setTime(Util.stringToJavaDate(date));
    xmlCalender = DatatypeFactory.newInstance().newXMLGregorianCalendar(calender);
    return xmlCalender;
}

public static Date  stringToJavaDate(String sDate)  throws OmniException{
    Date date=null;
    date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH).parse(sDate);        
    return date;  
}

当我通过日期,因为我得到输出日期作为我出错的地方?如果我只想得到,该怎么办,
任何帮助都是值得赞赏的"2014-01-07"2014-01-06T18:30:00:000Z2014-01-06T18:30:002014-01-06T18:30:00Z


答案 1

找到如下解决方案....发布它,因为它可以帮助其他人太:)

DateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date date = format.parse("2014-04-24 11:15:00");

GregorianCalendar cal = new GregorianCalendar();
cal.setTime(date);

XMLGregorianCalendar xmlGregCal =  DatatypeFactory.newInstance().newXMLGregorianCalendar(cal);

System.out.println(xmlGregCal);

输出:

2014-04-24T11:15:00.000+ 02:00


答案 2

对我来说,最优雅的解决方案是这个:

XMLGregorianCalendar result = DatatypeFactory.newInstance()
    .newXMLGregorianCalendar("2014-01-07");

使用 Java 8.

扩展示例:

XMLGregorianCalendar result = DatatypeFactory.newInstance()
    .newXMLGregorianCalendar("2014-01-07");
System.out.println(result.getDay());
System.out.println(result.getMonth());
System.out.println(result.getYear());

这将打印出来:

7
1
2014