2013-11-22 32 views
0

干扰抓具体日期我有一个XMLGregorianCalendar,我想转换为Java Date对象,但是当我试图隐蔽这样的:没有时区与的XMLGregorianCalendar在Java中

2013-11-19T00:00:00-00:00 

我总是带有日期一天后面的价值。

Mon Nov 18 17:00:00 MST 2013 

我只想要一个包含11/19/2013的日期对象。

+0

有没有一些代码? –

+0

只是头向上我没有办法修改XmlGregorianType。 –

+0

价值并不落后一天。这是时间确切的时间...'2013-11-19T00:00:00-00:00'是UTC的午夜,这是您的时区前一天的5PM Mountain标准时间。 – dcsohl

回答

0

我只是做这个,

Date startDate = new Date(request.getStartTime().getYear(), request.getStartTime().getMonth(), request.getStartTime().getDay(), 0, 0, 0); 
4

如上评论,你得到的结果是正确的 - 它在时间的同一时刻。午夜UTC是前一天的5点MST。也许你应该看看为什么你的时间是“-00:00”,而不是“-07:00”(MST)......但在同时,我想你可以试试这个:

public static void main(String... args) throws DatatypeConfigurationException { 
    XMLGregorianCalendar xcal = DatatypeFactory.newInstance().newXMLGregorianCalendar("2013-11-19T00:00:00-00:00"); 

    Calendar c = xcal.toGregorianCalendar(); 
    c.setTimeZone(TimeZone.getDefault()); 
    Date d = c.getTime(); 
    System.out.println(d); 
} 

打印出Tue Nov 19 00:00:00 EST 2013,并将在一天的其他时间,而不仅仅是午夜。