2014-07-01 4 views
0

시간이 밀리 초 단위이므로 Postgresql 데이터베이스에 삽입해야합니다. 내 문제는 내가 생성자 java.sql.Time()을 사용할 때 정확한 시간이 있지만 한 시간 더 남았습니다!java.sql.Time 생성자를 사용하여 긴 값을 생성하는 방법

예를 들어

: 정답은 00:08:23

내 코드가 아니라 때 나는 503000 milisecondsnew java.sql.Time(503000) = 01:08:23가있는 경우 :

new java.sql.Time(miliseconds); 

문제가 무엇입니까? 나는 시간대에 대해 뭔가 읽었다. 이 경우 어떻게 해결할 수 있습니까 ??

이 밀리 초를 사용하여 Date 객체를 만들고 데이터베이스에 삽입해야합니다.

myObject.setDuration (새 시간 (기간)); // setDuration는 날짜 매개 변수를 미리

덕분에이 곳

+2

값이 올바르게 데이터베이스에 삽입 얻을합니까 그것은 당신이 다시 타임 스탬프에서 읽고있는 값이 시간대 및/또는 일광 절약 – MadProgrammer

+0

의 차이를 고려한다 가능? – MadProgrammer

+0

예, 값이 올바르게 삽입되었습니다. 그리고 내 컴퓨터는 스페인어로 작동합니다. – jjmartinez

답변

2

java.sql.Time ... 예를 들어, 현재 시간대에 따라 시간을 제공하도록 설계되었습니다

Time ts = new Time(503000); 
System.out.println(ts); 
System.out.println(ts.getTime()); 

출력

10:08:23 
503000 

나를 위해.

당신은 더

10:08:23 +1000 
+0

문제는 Date 값이 필요하다는 것입니다. 밀리 초 단위의 시간이 있고 Date 객체에 삽입해야합니다. 실제로 어떤 값이 생성되는지 확인하기 위해 인쇄합니다. – jjmartinez

+0

다른 클래스를 사용하여 긴 (밀리 초) 값에서 Date 객체를 생성 할 수 있습니까 ??? – jjmartinez

+1

많이 있습니다. Calendar를 사용하여 날짜/시간의 속성을 수정할 수 있습니다. – MadProgrammer

0

귀하의 출력 00:08:23를 출력하는 SimpleDateFormat ....

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss Z"); 
System.out.println(sdf.format(ts)); 

를 사용하여이를 테스트 할 수는 해당 지역의 시간대를 기반으로합니다.

내 예보기;

Time t1 = new java.sql.Time(503000); 
System.out.println(t1); //print 06:38:23 - my local timezone 


SimpleDateFormat sdfm = new SimpleDateFormat("HH:mm:ss"); 
sdfm.setTimeZone(TimeZone.getTimeZone("GMT")); 
System.out.println(sdfm.format(t1)); //print 00:08:23 - GMT timezone 
관련 문제