2013-08-23 3 views
0

Date로 선언 된 Entity 필드가 있고 oracle의 날짜 필드에 매핑됩니다. 해당 필드 값을 인쇄 할 때 2013-04-23 09:05:03.0 같은 날짜 형식이 나타납니다.Oracle에서 ISO 8601 날짜 형식으로 최대 절전 모드로 전환

이 날짜를 ISO 8601 형식으로 변환해야합니다. 그래서 사용 :

System.out.println("Converted Date:" + asXMLGregorianCalendar(retrunedDate); 

private static DatatypeFactory df = DatatypeFactory.newInstance(); 

public static XMLGregorianCalendar asXMLGregorianCalendar(java.util.Date date) { 
    if (date == null) { 
     return null; 
    } else { 
     DatatypeFactory df = DatatypeFactory.newInstance(); 
     GregorianCalendar gc = new GregorianCalendar(); 
     gc.setTimeInMillis(date.getTime()); 
     return df.newXMLGregorianCalendar(gc); 
    } 
} 

다음 코드를 반환 :

System.out.println("Converted Date:" + asXMLGregorianCalendar(retrunedDate); 

// Output 
Converted Date: 2013-04-23T09:05:03.000-05:00 

질문 : 대신 실제 수의 000 있습니다

  1. 합니다. 이유를 모르십니까?
  2. 최대 절전 모드 2013-04-23 09:05:03.0의 끝에있는 0은 무엇입니까? 전체 날짜를 어떻게 얻습니까? 나는 Date를 통과하면

, 나는이 내가해야 할 것입니다 내가

System.out.println("Converted Date:" + asXMLGregorianCalendar(new Date()); 

// Output 
Converted Date: 2013-08-23T17:19:15.664-05:00 

: 필요한 결과를 얻을. 000 대신 밀리 초가 필요합니다. Hibernate는 날짜를 가지고 무엇인가하고 있습니까?

+0

0은 밀리 초입니다. '전체 날짜'란 무엇을 의미합니까? 인쇄 된 날짜는 나에게 꽤 가득 찼다. 그렇다면 다시 ISO 8601 형식이 너무 모호합니다. ISO 8601은 많은 날짜/시간 형식을 설명합니다. 당신이 달성하고자하는 날짜의 형식이 무엇인지 말해 줄 수 있습니까? 그런 다음 어떻게 달성 할 수 있도록 도와 드릴 수 있습니다. – SerotoninChase

+0

고마워, 내 질문을 업데이 트했습니다. 확인하십시오 –

+0

문제는 데이터를 데이터베이스에 두는 것이 가장 가까운 초로 자르는 것입니다. 다시 인쇄하기위한 코드는 괜찮습니다. – Affe

답변

2

Oracle DATE 데이터 유형에는 소수 초가 저장되지 않습니다. 밀리 초를 저장하고 복구하려면 열의 데이터 유형을 TIMESTAMP으로 변경해야합니다.

관련 문제