초보 dogfootruler

4. 안드로이드 현재 시간 보여주기(currentTimeMillis()) 본문

StudyRoom;/Android;

4. 안드로이드 현재 시간 보여주기(currentTimeMillis())

킹갓우부 2019. 11. 8. 17:03

오늘은 현재시간을 보여주는 함수를 사용해보려고 한다.

졸업 프로젝트를 하면서 상당히 많이 사용했던 함수였다.

예를 들어 채팅방을 만들때, 현재 시간을 보여주는 것은 당연했으니까!

 

상당히 간단하게 끝낼수 있다.

 

1. 시간을 보여줄 TextView를 만들어주자!

전에 쓰던 xml을 재활용하였다

2. 자바로 넘어와서 단 4줄을 작성하면, 현재시간을 알 수 있는 코드를 작성할 수 있다!

참고로 말하자면, 이 코드는 인터넷에서 받아온 세계 공통의 시간이 아닌 모바일 환경을 시간을 보여주는 것이다

그래서 모바일의 시간을 임의로 바꾼다면 임의로 바꾼 그 시간이 보여지게 된다

 long mNow = System.currentTimeMillis();
 Date mReDate = new Date(mNow);
 SimpleDateFormat mFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 String formatDate = mFormat.format(mReDate);

그리고 아래에 정의해준 TextView에 setText()를 해주어서 붙여주면 끝이다!

 mTvTime.setText("로그인한 시간은" + formatDate);

3. 안드로이드 화면

이 화면의 차이는 format의 차이다.

혹시나 모를까봐 간단하게 설명하자면

SimpleDateFormat mFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat mFormat = new SimpleDateFormat("yyyy-M-dd hh:mm:ss");
 SimpleDateFormat mFormat = new SimpleDateFormat(" hh:MM:ss");

yyyy는 년도, MM은 월 dd는 일 HH는 시간 mm은 분, ss는 초를 보여준다

여기서 필요한것만 빼서 쓰는 것도 가능하다.

그런데, 중간 중간 어떤건 대문자고 소문자이다.

눈치가 빠른 분들은 MMmm의 차이는 월과 분의 차이라서 그렇게 썼구나 하겠지만, 

HH는 왜 그렇게 쓴거지 하는 궁금증을 설명하자면 hh라고 써도 된다.

하지만 HH를 쓰면 24시간을 기준으로 보여주지만, hh로 쓰면 12시간을 기준으로 보여준다.

예를 들어 오후 6시 같은 경우는, HH라고 쓰면 18이라고 뜨지만, hh는 6이라고 보여지고 있어서

오후인지 오전인지 따로 표기를 해야한다.

또한, MM을 M으로 써도 상관은 없는데, 예를들어 9월달이라고 치면 M은 9라고 표시해주고, MM은 09라고 표시를 해준다.

마지막 화면을 보면 시간은 2:58분인데 시간은 2:09라고 적혀있다. 이것은 mm대신 MM을 사용해 분대신 월로 들어갔기 때문이다.

 

이렇게 정리를 마무리 할수 있다.

간단하지만, 매우 많이 사용하는 코드라서 정리를 잘해두면 계속해서 사용할 것 같다!

Comments