GregorianCalendar의에서 날짜를 얻는 것은 일관성이되고있는이 각각 GMT + 1 2000-01-01 자정, GMT + 1, UTC를 나타냅니다는 GregorianCalendar를
946681200000, 946681200000, 946684800000
에서
Calendar cal = new GregorianCalendar(2000, 0, 1);
long testCalOne = cal.getTimeInMillis();
cal.setTimeZone(TimeZone.getTimeZone("UTC"));
long testCalTwo = cal.getTimeInMillis();
Calendar cal2 = new GregorianCalendar(2000, 0, 1);
cal2.setTimeZone(TimeZone.getTimeZone("UTC"));
long testCalThree = cal2.getTimeInMillis();
System.out.println(testCalOne + ", " + testCalTwo + ", " + testCalThree);
결과 . 내 시간대는 UTC 기준으로 +1 시간입니다.
여기서 문제는 getTimeInMillis가 1970-01-01부터 UTC로 밀리 초를 반환해야한다는 것입니다. testCalThree 만 정확합니다.
또 다른 문제는 이전에 getTimeInMillis를 호출했는지에 따라 setTimeZone이 작동하지 않는 것입니다.
내 목표는 다른 코드에서 매개 변수로받는 Calendar를 가져 와서 이후 사용을 위해 UTC (java.util) Date를 얻는 것입니다.
정상 상태를 유지하려면 JodaTime 또는 Java8 새 날짜/시간 API로 전환하십시오. – lexicore
여전히 '캘린더'를 사용하는 이유는 무엇입니까? (불쾌감 없음) – Spotted
내 코드가 아니며 매개 변수를 가져옵니다. – Juryt