2016-06-06 5 views
0

제가 사용하는 서버는 호주 멜버른입니다. 오스트레일리아의 퍼스 (Perth, 호주)에서 표시되는 날짜가 하루 씩 감소한다는보고를 받았습니다 (즉, 2003-10-31은 2003-10-30로 표시됨). 내 독서에서 시간대를 설정해야한다는 것을 알게되었습니다. 그들은 2/3 글자 시간대를 사용하지 말고 풀 타임 존을 사용한다고 말합니다. 그러나 호주 멜버른의 전체 시간대를 찾을 수 없습니다. 누구든지 이걸로 도와 줄 수 있니?GWT - 하루가 감소합니다.

내가 함께 온 코드는 다음과 같습니다

//Display the DOB 
DateTimeFormat fmt = DateTimeFormat.getFormat("yyyy-MM-dd australiaMelbourne"); 
String stringDOB = fmt.format(ythMmbrSectDtls.getDob()); 
Label dateLblDOB = new Label(stringDOB); 
dateLblDOB.setStyleName("gwt-Label-Login"); 
dateLblDOB.setWidth("100px"); 
flexTable.setWidget(row, 3, dateLblDOB); 

코드는 (서버 측에서)해야한다 :

while (result.next()) { 

       Calendar calendar = Calendar.getInstance(); 
       calendar.setTime(result.getDate("dob")); 
       TimeZone timeZone = TimeZone.getDefault(); 
       calendar.setTimeZone(timeZone); 
       java.sql.Date javaSqlDateDOB = new java.sql.Date(calendar.getTime().getTime()); 

       VenturerSectDtls venturerSectDtls = new VenturerSectDtls(
         result.getString("cdID"), 
         null, 
         result.getString("surname"), 
         result.getString("firstName"), 
         javaSqlDateDOB, 
         //result.getDate("dob"), 

답변

1

전체 시간대 형식이 경우 Australia/Melbourne 그렇게 Continent/City입니다 . 자세한 내용은

은 다음을 참조하십시오 http://tutorials.jenkov.com/java-date-time/java-util-timezone.html

+0

안녕 Akunosh, 나는 내가 사용한다고 생각하는 코드를 추가했습니다. 이걸 확인해 주시겠습니까? 나는 호주/멜버른에 타임 존을 설정하는 대신 TimeZone을 사용해야한다고 생각한다. timeZone = TimeZone.getDefault(); 예를 들어 "이 프로그램이 실행중인 시스템 (컴퓨터)"이라는 의미일까요?). 이런 식으로 프로그램이 다른 서버로 옮겨지면 코드를 변경할 필요가 없습니다. 테스트 용 PC에서는 이것을 복제 할 수 없으며 제작에 문제를 넣고 싶지 않습니다. 따라서 책상 수표를 보내 주시면 감사하겠습니다. – Glyn

+0

나는 더 많은 연구를 해왔고 클라이언트 측이 아닌 서버 측에서이 작업을 수행해야합니다. 그 맞습니까? 이것은 내가 클라이언트 측에 전달하기 전에 날짜를 수정하는 것이 덜 변화를 의미하는 것처럼 나를 위해 최선을 다할 것입니다. 즉, 나는 새로운 질문을해야 할 필요가 있음을 의미한다. – Glyn

+0

'TimeZone timeZone = TimeZone.getDefault();'는이 코드/jvm이 실행중인 운영 체제의 기본값으로 시간대를 설정합니다. 이것은 클라이언트 소프트웨어에이 값이 있으면 클라이언트 컴퓨터의 시간대로 설정됩니다. 질문은 표시된 시간으로 무엇을하고 싶은지입니다. 포럼 항목이나 변경 로그 또는 그와 비슷한 서버의 데이터와 관련이 있으면 서버 시간을 사용하여 클라이언트에 보내야하며 모든 사용자가 동일한 참조를 얻습니다. – Akunosh

0

사용을 SimpleDateFormat 대신 DateTimeFormat

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.ENGLISH);

여기 SimpleDateFormat의

에 대한 문서를 확인하시기 바랍니다 자바 6 : http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html

자바 7 : http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

+1

GWT의 클라이언트 측에서'SimpleDateFormat'을 사용할 수 없습니다. 그것은 [JRE 에뮬레이션] (http://www.gwtproject.org/doc/latest/RefJreEmulation.html)의 일부가 아닙니다. – Baz

관련 문제