2013-02-26 1 views
0

나는 timezone..for에 대한 지원을하고 싶습니다. 이것은 UTC 시간을 가진 데이터베이스의 날짜 값을 저장하고 있습니다. 그런 다음 시간을 변환하는 것은 사용자의 로컬 시간대에 달려 있습니다.이 라인을 사용하고 있습니다. 데이터베이스 쿼리는java에서 + hh : mm과 같은 형식으로 지정된 오프셋 시간 (초)을 변환하는 방법?

CONVERT_TZ(modifiedtime,'+00:00','+05:30')이 나에게 인도 표준 시간 현지 시간대를 줄 것이다 ...하지만 내 질문에 내가에만 econds 오프셋하고 특정 사용자에 대한 THER 아이디 ..

그래서 어쨌든 THER입니다 나는 같은 형식으로 오프셋을 변환 할 수 +05:30 or say +04.00 ,+04.30.. 아무도 날 +hh:mm 같은 형식으로 초 단위로 주어진이 오프셋을 변환 할 수있는 적절한 솔루션을 줄 수 그래서 내가 직접 쿼리를 줄 수 있습니다 ...

Liferay 6.1 포털을 사용하고 있습니다. 내 사용자 정의 포틀릿을 만들었습니다. 그래서이 코드를 자바 언어로 만들 필요가 있습니다. 그래서 어느 하나라도 안내해 주실 수 있습니까? 당신이 당신의 자신의 변환을 코딩 시도하거나 시도 할 수

답변

1

이 :

long offset = 19800; //offset IST (seconds) 
    long time = TimeUnit.SECONDS.toMinutes(offset); //or offset/60 
    long hour = time/60; 
    long min = Math.abs(time % 60); 
    String hrStr = ""; 
    if (hour > 0 && hour < 10) { 
    hrStr = "+0" + String.valueOf(hour); 
    } else if (hour >= 10) { 
    hrStr = "+" + String.valueOf(hour); 
    } else if (hour < 0 && hour > -10) { 
    hrStr = "-0" + String.valueOf(hour).substring(1); 
    } else { 
    hrStr = String.valueOf(hour); 
    } 
    String minStr = String.valueOf(min); 
    if (min < 10) { 
    minStr = "0" + (time % 60); 
    } 
    String timeStr = hrStr + ":" + minStr; 
    System.out.println(timeStr); 
+0

이 코드에서이 시간 변수는 무엇입니까? –

3

다음은 조금 짧아 질 및 convienient 수있는 다음과 같은

private static SimpleDateFormat plus = new SimpleDateFormat("+hh:mm"); 

private static SimpleDateFormat minus = new SimpleDateFormat("-hh:mm"); 

private static String getTimeCode(int seconds) { 
    SimpleDateFormat simpleDateFormat = (seconds < 0) ? minus : plus; 
    if (seconds < 0) seconds = 12 * 3600 - seconds; 
    simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC")); 
    return simpleDateFormat.format(new Date(seconds * 1000)); 
} 

int seconds = 5 * 3600 + 30 * 60; 
String format = getTime(seconds); //+05:30 
format = getTime(-1 * seconds); //-05:30 
모든 코딩 표준을 적용하지 않을 수 있습니다 코드 위

,하지만 짧은 SO에 대한

+0

물론 simpleDateFormat은 정적이어야합니다.) – Jan

+0

timeZone이 GMT (예 : EST) 인 경우에는 작동하지 않습니다. – Poorna

+0

? 시간대가 명시 적으로 UTC로 설정되어 있기 때문에 항상 작동합니다. – Jan

관련 문제