2013-12-09 5 views
0

에 추가하려면 DateTime 유형의 DateTimeCreated 열이있는 mssql 데이터베이스가 있어야합니다. 표에 허용 할 값은 2013-12-23 12 : 23 : 56.567 형식입니다. 그러나, 내 자바 프로그램 2013-12-23T 12시 23 분 : 56.567Z 형식 joda DateTime 개체를 만드는 것입니다. 이건 내 DB에 삽입 실 거예요. "2013-12-23T 12 : 23 : 56.567Z"을 2013-12-23 12 : 23 : 56.567로 변환하거나 내 DB 테이블에서 "2013-12-23T 12:23 : 56.567Z "형식 이 문제에 어떤 도움이 많이 이해할 수있을 것이다 많은 감사 빌리 필자 (JSQL DateTime 객체를 MSSQL 데이터베이스

Date date = new Date(); 
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); 
String formattedDate = formatter.format(date);//this gives me the string as i need it 
Date dt = formatter.parse(formattedDate);//here it gives me the same as new Date() 
+0

JPA를 사용하고 있습니까? 일반 jdbc?몇 가지 코드를 보여줄 수 있습니까? 너 뭐 해봤 니? –

+0

JodaTime에서 밀리 세컨드 단위로 시간을 얻을 수 없으며 MySQL에 전달할 타임 스탬프를 만들 수 없습니까? – svz

+0

업데이트 된 질문을 참조하십시오. –

답변

0
  1. DateFormat의 포맷터 = 새 SimpleDateFormat의 시도

    Date date = new Date(); 
    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); 
    String formattedDate = formatter.format(date);//this gives me the string as i need it 
    DateTime dt = new DateTime(formattedDate);//here it adds the 'T' and 'Z' 
    

    컨트롤러"YYYY-MM-을 dd "); 날짜 myDate = formatter.parse (date);

2. enter link description here TO_DATE 함수는 Oracle/PLSQL에서 사용할 수 있습니다. 예를 들어 :

('2003년 7월 9일', 'YYYY/MM/DD')가 7월 9일의 날짜 값을 반환

TO_DATE 2003

TO_DATE ('070903', 'MMDDYY')는 것 7 월 9 일의 2003

TO_DATE을 날짜 값을 반환 ('20020315'은 'YYYYMMDD')는 2002년 3월 15일 귀하의 DB 컬럼이 날짜 시간 유형이

+0

안녕하세요, 죄송하지만 죄송하지만 자바 컨트롤러 클래스를 통해 데이터베이스에 일부 값을 삽입하려고합니다. 테이블이 이미 존재하고 값을 삽입하기 전에 컨트롤러에서 변환을 수행해야합니다. 내 컨트롤러에서이 작업을 수행하는 데 사용할 코드의 예를 들어 주시겠습니까? 많은 감사합니다. 빌리 –

+0

불편을 끼쳐 드려 죄송합니다. 확인하고 있습니다. – Lijo

0

의 날짜 값을 반환합니다. 날짜를 텍스트로 유지하는 것은 관련성이 없습니다. 사용하는 API에 관계없이 (JDBC, JPA, Hibernate) java.util.Date 또는 java.sql.Date 또는 Java에서 전달할 수있는 "setDateTime (Date date)"메소드와 같은 것이 있습니다 긴. Joda DateTime 객체의 밀리 초 값을 사용하여 API에 필요한 것을 만들 수 있습니다.

0

너무 열심히하고 있습니다.

  1. java.util.DateJoda-TimeDateTime 객체를 변환합니다. toDate() 방법으로 전화하면됩니다.
  2. 프레임 워크 또는 SQL에 날짜 인스턴스를 전달하십시오.

answer by Ralf은 첫 번째 부분에서는 올바르지 만 밀리 초를 처리 할 필요가 없다는 점에서 결국 잘못되었습니다. Joda-Time은 java.util.Date로 변환하는 방법을 알고 있습니다. 그런데


org.joda.time.DateTime now = new org.joda.time.DateTime(); 
java.util.Date nowAsJavaUtilDate = now.toDate(); 

java.sql.Date 클래스는 단순히 java.util.Date의 매우 얇은 서브 클래스입니다. 그러니 당신을 던지지 않게하십시오.


앞으로는 더 쉽게 될 것입니다. Java 8은 새로운 JSR 310 클래스를 java.time. * 패키지에 제공합니다. 이러한 클래스는 java.util.Date/Calendar 인 혼란을 대신합니다. Joda-Time에서 영감을 얻었지만 완전히 재구성되었습니다. 이들은 Java의 내장 부분이므로 JDBC 및 관련 프레임 워크를 업데이트하여 이러한 새로운 유형을 직접 처리 할 수 ​​있습니다.

관련 문제