Timestamp로 받은 정보 android에서 Calendar로 사용하기

2019. 5. 21. 17:03Coding/Android Studio

728x90

Date가 거의 deprecated된거같고, 요즘은 Calendar를 쓴다길래 사용법을 찾아봄.

1) Calendar 생성

2)SimpleDateFormat으로 패턴을 만들어줌.

3) Date에 1에서 만든 패던으로 날짜를 집어 넣음

4) Calendar에 setTime()을 해줌.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Calendar cal = Calendar.getInstance();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    try {
        Date date = dateFormat.parse(historyItem.getRegDate());
        cal.setTime(date);
        Log.d("###", cal.get(Calendar.YEAR)+"");
        Log.d("###", (cal.get(Calendar.MONTH)+1)+"");
        Log.d("###", cal.get(Calendar.DATE)+"");
        Log.d("###", cal.get(Calendar.HOUR_OF_DAY)+"");
        Log.d("###", cal.get(Calendar.MINUTE)+"");
        Log.d("###", cal.get(Calendar.SECOND)+"");
    } catch (ParseException e) {
        e.printStackTrace();
    }
cs

순서대로 년/월/일/시(24시)/분/초

주의사항 : 월은 0부터 시작이라(0~11) 월에 +1을 해줘야함.

 


 

추가.

위처럼만 하면 나타낼때,

2019 / 05 / 22  (17 : 05 : 03) 이렇게 나타나지 않고,

2019 / 5 / 22  (17 : 5 : 3) 이렇게 나타남.

String regDate = String.format("%d / %02d / %02d (%02d:%02d:%02d)", year, month, date, hour, min, sec);

이런식으로 c에서 자주보던 방법으로 해주면 해결.

 

%d는 그냥 받는거,

%02d는 2자리로 받는데, 빈자리는 0으로 받겠다는거.(5를 받으면 05로 출력)

마찬가지로 %05d는 5자리로 받고, 빈자리는 0으로 받음.(5를 받으면 00005)

 

 

 

728x90