개발 공부/안드로이드

android, kotlin 시간차이 구하기

yong_DD 2022. 7. 3. 15:40

android 에서 시간을 가져오는 방법에는 여러가지가 있다.

현재 시간을 가져올 때 많이 쓰는 System.CurrentTimeMillis() ,

시간 차이를 구할 때 많이 쓰는 SystemClock.elapsedRealTime()

그 외 SystemClock.uptimesMills(), SystemClock.elapsedRealTimeNanos() 등등이 있다.

1. System.CurrentTimeMillis()

- 세계 표준시(UTC)로 1970년 1월 1일 00시 00분 00초를 기점으로 지금까지 얼마나 흘렀는 지를 밀리세컨드 단위로 리턴(Long 타입으로 반환)

- 디바이스에 설정된 시각을 기준으로 리턴하기 때문에 시각이 변경되는 경우에는 시간 차이를 구할 때 정확하지 않을 수 있다.

2. SystemClock.elapsedRealTime()

- 부팅된 때 부터 현재까지 지난 시점을 밀리세컨드 단위로 반환

- 앱이 종료되지 않는 이상 background 있을 때도 시간이 지나므로 비교적 정확하다.

- SystemClock.elapsedRealTimeNanos()는 나노초 단위로 리턴

- SystemClock.uptimesMills()는 background에 있을 시에는 시간이 지나지 않는다.

 

[참고 자료]

https://developer.android.com/reference/android/os/SystemClock