날짜나 시간을 가져오기 위해서 어떤 방법이 있는 지 검색해봤다.
일단 날짜를 출력하기 위해서는 달력이 어떻게 되어 있는지, 시간이 어떻게 측정(?)되는 지 알아야 할 것 같아서 좀 더 검색을 해봤다.
출처 - http://bomber0.byus.net/index.php/2009/02/05/983
천체관측을 통해서 1년을 365일 5시간 48분 55초라고 하는데, 보니 365일과 약 1/4일이 1년이라는 이야기다.
4년 마다 약 하루씩의 날짜가 더 있기 때문에, 4년마다 윤년을 두고 2월에 하루를 더 추가하지만, 33년 마다 8일이 더 붙어서 100 = 33 * 3 + 1 , 400 = 33 * 3 * 4 + 4 라는 식을 활용한다면, 400년에는 8 * 3* 4 + 1 =97 일 정도가 더 필요해지게 되고, 이 오차를 수정하기 위해서 100년 마다 윤년을 건너뛰고 400년의 배수가 되는 해를 윤년으로 해서 100년간 97번의 윤년을 가지게 된다고 한다.
출처 - http://stackoverflow.com/questions/5369682/get-current-time-and-date-on-android
율리우스력 - http://en.wikipedia.org/wiki/Julian_calendar
그레고리력 - http://en.wikipedia.org/wiki/Gregorian_calendar
4년마다 율리우스력을 사용하던 방식에서 16세기 그레고리 교황 시기에 이 오차를 수정한 그레고리력을 사용을 시작했고, 댓글을 보니 1582년 10월 4일에서 1582년 10월 15일로 10일을 점프(기존 오차를 보정?)해서 적용했다고 한다.
아무튼 그렇다고 하니 그렇다.
안드로이드에서 시간을 얻는 방법을 좀 검색해보니 방법이 꽤 많다.
참조 - http://developer.android.com/reference/android/os/SystemClock.html
우선 안드로이드의 시스템 시간을 얻어오는 방법들을 알아봤다.
안드로이드 시스템 시계는 android.os.SystemClock 클래스를 통해서 이용할 수 있는데, 몇 가지 특성이 있다.
이 녀석들은 시스템 부팅 이후 앱이나 시스템의 대기상태 등에 영향을 받지 않고 계속 시간을 체크하며, long 타입을 반환한다.
uptimeMillis()가 상태에 따른 시간의 흐름이 단절되는데 반해서 시스템 부팅 이후의 시간을 계속 체크하므로, 일반적인 목적의 시간 간격을 체크하는 기반으로 사용되면 좋다고 한다.
그 외에도 좀 읽을 거리가 많이 있기 때문에 위의 구글 주소에 들어가서 한 번 읽어보면 좋을 것 같다.