2012-12-13 2 views
1

스칼라와 자바에서 서로 다른 출력을 제공하는 코드 스 니펫이 있습니다. 나는 자바에서와 같은 출력을 원한다. 자바스칼라 날짜 형식 문제

출력 : 스칼라에서 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

xgc.setMillisecond(DatatypeConstants.FIELD_UNDEFINED)

은 우리에게 스칼라 코드를 표시합니다. – Jesper

답변

0

해결책 벨을 찾아주세요. 아야.

위 코드에서 시간대와 밀리 초를 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