2012-12-13 124 views
1

我有在scala和java中给出不同输出的代码片段。我想要和Java一样的输出,请引导任何人。Scala日期格式问题

输出在Java中:2012-12-13T10:36:38
输出斯卡拉:2012-12-13T10:35:38.000+04:00

/** 
* Convert the datetime to XMLGregorianCalendar datetime format. 
* <br><h6>Example Date format You have to Give is : </h6> 
* new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").format(Calendar.getInstance().getTime())) 
* <br>1900-01-01T00:00:00 
*/ 
public static XMLGregorianCalendar stringToXMLGregorianCalendar(String datetime) throws Exception { 

    try { 
     if(datetime == null || "".equals(datetime)) 
      return null; 
     GregorianCalendar gc = (GregorianCalendar) GregorianCalendar.getInstance(); 
     gc.setTime(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").parse(datetime)); 
     return DatatypeFactory.newInstance().newXMLGregorianCalendar(gc); 
    } catch (DatatypeConfigurationException e) { 
     logger.error(e.fillInStackTrace()); 
     throw new Exception(e.fillInStackTrace()); 
    } 
} 
+2

向我们展示你的Scala代码。 – Jesper

回答

0

我已经解决了这个问题请找到解决方案流。

我已经在上面的代码中设置了未定义的时区和毫秒。

xgc.setMillisecond(DatatypeConstants.FIELD_UNDEFINED) xgc.setTimezone(DatatypeConstants.FIELD_UNDEFINED)

try { 
     if (datetime == null || "".equals(datetime)) 
      return null 
     val gc = new GregorianCalendar() 
     gc.setTime(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").parse(datetime)) 
     val xgc = DatatypeFactory.newInstance().newXMLGregorianCalendar(gc) 
     xgc.setMillisecond(DatatypeConstants.FIELD_UNDEFINED) 
     xgc.setTimezone(DatatypeConstants.FIELD_UNDEFINED) 
     return xgc 
    } catch { 
     case e: DatatypeConfigurationException => logger.error(e.fillInStackTrace()); throw new Exception(e.fillInStackTrace()) 
    } 
1

也许你应该更改时区

val d = new java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").format(java.util.Calendar.getInstance().getTime()) 
val gc: java.util.GregorianCalendar = classOf[java.util.GregorianCalendar].newInstance().asInstanceOf[java.util.GregorianCalendar];  gc.setTime(new java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").parse(d)); 
gc.getTime 
gc.getTimeZone 

结果:

res6: java.util.Date = Thu Dec 13 17:21:50 GMT+02:00 2012 
res7: java.util.TimeZone = sun.util.calendar.ZoneInfo[id="GMT+02:00",offset=7200000,dstSavings=0,useDaylight=false,transitions=0,lastRule=null] 
+0

嗨谢谢你的答案,但我期待一个具体的结果,我必须传递给其他类,你怎么能看到下面的答案如何处理。 – Azhar