2017-04-10 2 views
1

Android 앱에서 현재 시간을 여러 번 가져와야합니다.Calendar.getInstance()를 여러 번 효율적으로 호출합니까?

Calendar.getInstance()을 호출하는 것이 최상의 구현인지 궁금 해서요. 또는 대신 주어진 인스턴스를 (어떻게 든) 업데이트하고 더 빠르고 저렴하게 (계산적으로) 만들 수 있습니다.

Calendar 인스턴스를 업데이트하는 방법이 있습니까? 더 빠릅니까?

감사합니다.

+0

'일정은 아래와 같이 전에 currentTimeMillis (롱) 결과에서 변환 일정 인스턴스를 사용할 수 있습니다. getInstance()'는 현재 시간과 날짜로 초기화 된 객체를 반환합니다. 원하는 경우 해당 인스턴스를 계속 사용하고 필요할 때 해당 인스턴스의 시간과 날짜를 설정할 수 있습니다. –

+0

'Calendar' 인스턴스가 정말로 필요한가요? 'System.currentTimeMillis()'를 대신 사용하는 것은 어떻습니까? –

+0

@NielsMasdorp 문제는, 어떻게'Calendar.getInstance() '를 호출하지 않고'Calendar' 인스턴스를 업데이트합니까? – JonZarate

답변

2

현재 시간이 필요한 경우 System.currentTimeMillis()으로 가져올 수 있습니다. Calendar 기능이 필요하면 매번 Calendar.getInstance() 번으로 전화 할 필요가 없습니다. 대신 나는 새로운 일정 인스턴스를 많이 만드는 대신 다음 중 하나를 사용하는 것이 좋습니다

calendar.setTimeInMillis(System.currentTimeMillis()); 
0

같은 것 Calendar 참조를 기존 및 현재 시간을 설정하여 업데이트 사용할 수 있습니다. 현재 시간을 사람이 읽을 필요하면

System.currentTimeMillis() 

System.nanoTime() 

, 당신은

Long l = 1491812989036L; 

Calendar cal = Calendar.getInstance(); 
cal.setTimeInMillis(l); 

System.out.println("year: " + cal.get(Calendar.YEAR)); 
System.out.println("month: " + cal.get(Calendar.MONTH)); 
System.out.println("day: " + cal.get(Calendar.DAY_OF_MONTH));