Coding/Android Studio
Timestamp로 받은 정보 android에서 Calendar로 사용하기
떡빵
2019. 5. 21. 17:03
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