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
'개발 공부 > 안드로이드' 카테고리의 다른 글
android Room 1 - 알아보기 (0) | 2022.07.03 |
---|---|
안드로이드 onNewIntent 관련 알아보기, lauchMode (0) | 2022.07.03 |
andrid SoundPool 음성파일/효과음 재생 (0) | 2022.07.03 |
android 권한 요청 (0) | 2022.07.03 |
android/kotlin Thread, runOnUiThread (0) | 2022.07.03 |