2013-08-30 3 views
0

나는 약간 혼란 스럽다. 저는 Java에서 Calendar 및 GregorianCalendar 클래스로 작업하고 있었지만 시간을 인쇄했지만 4로 밝혀졌으며 현재는 11입니다.캘린더 클래스의 HOUR은 특정 시간대를 기반으로합니까?

제 질문은 현지 시간을 기준으로 한 시간입니까? 특정 시간대를 기반으로합니까?

둘러 보았지만 명확한 답변을 찾지 못했습니다.

Calendar today = new GregorianCalendar(); 
    int y = today.get(Calendar.YEAR); 
    int h = today.get(Calendar.HOUR); 
    int ap = today.get(Calendar.AM_PM); 
    System.out.println(y + " " + h + " " + ap); 

그리고 내 출력 :

2013 4 1 
+0

인쇄 방법과 관련된 몇 가지 코드를 표시하십시오. – kosa

+0

코드 및 출력을 표시하도록 편집되었습니다. – lonewookie

+1

IDE로 무엇을 사용하고 있습니까? ... 실행하면 로컬 시간이 생깁니다. (netbeans를 사용하고 있습니다 ...) – gtgaxiola

답변

0

GregorianCalender의 인수 없음의 생성자는 시간대로 Timzone.getDefault() 사용합니다. 이것은 코드를 실행하는 JVM의 시간대 (즉, 현지 시간)입니다. Calendar.HOUR을 포함한 모든 달력 필드는이 시간대를 기반으로합니다.

현지 시간과 다른 경우 JVM이 다른 시간대에 있거나 JVM (또는 호스팅 컴퓨터)이 잘못 구성되어 있습니다.