Skip to content

Java.util.Calendar

Calendar는 Date 객체 및 YEAR, MONTH, DAY, HOUR, 등등과 같은 정수 필드 세트 사이의 변환을 위한 abstract 기본 클래스입니다. (Date 객체는 밀리초 단위로 특정 인스탄트를 나타냅니다. Date 클래스에 대한 자세한 내용은 java.util.Date를 참조하십시오.)

Calendar의 서브클래스는 특정 달력 시스템 규칙에 따라 Date를 해석합니다. JDK는 Calendar의 구체적인 서브클래스인 GregorianCalendar를 제공합니다. 이후 서브클래스는 세계 여러 곳에서 사용되는 다양한 유형의 음력을 나타낼 수 있습니다.

Example

Simple version

Java에서 현재날짜와 현재시간을 구한 후 문자열로 출력하는 방법:

Calendar cal = Calendar.getInstance();
String dateToString = String.format("%04d-%02d-%02d", cal.get(Calendar.YEAR), cal.get(Calendar.MONTH) + 1, cal.get(Calendar.DAY_OF_MONTH));
String timeToString = String.format("%02d:%02d:%02d", cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE), cal.get(Calendar.SECOND));

Today calender

오늘 날짜를 획득하는 방법은 아래와 같다.

Calendar now = Calendar.getInstance();
now.setTimeInMillis(System.currentTimeMillis());
int nowYear = now.get(Calendar.YEAR);
int nowMonth = now.get(Calendar.MONTH);
int nowDay = now.get(Calendar.DATE);
Log.e("TODAY", String.format("Year(%d), Month(%d), Day(%d)", nowYear, nowMonth, nowDay));

Day of week

오늘의 요일 이름을 구하는 방법은 아래와 같다.

import java.util.Calendar;
// ...
public static String getCurrentWeek(String[] args) {
    Calendar oCalendar = Calendar.getInstance();
    final String[] week = { "일", "월", "화", "수", "목", "금", "토" };
    return week[oCalendar.get(Calendar.DAY_OF_WEEK) - 1] + "요일";
}

Calendar simple example

public static void main(String[] args) {
    // 기본적으로 현재날짜와 시간으로 설정된다.
    Calendar today = Calendar.getInstance();
    System.out.println("이 해의 년도 : " + today.get(Calendar.YEAR));
    System.out.println("월(0~11, 0:1월): " + today.get(Calendar.MONTH));
    // (today.get(Calendar.MONTH) + 1)) 이런 형식으로 하면 다음월을 받아 올 수
    // 있다. today.get(Calendar.MONTH) + 1로 하면 이상한 값이 나온다. (괄호유무)
    System.out.println("월(0~11, 0:1월): " + (today.get(Calendar.MONTH) + 1));
    System.out.println("이 해의 몇 째 주: " + today.get(Calendar.WEEK_OF_YEAR));
    System.out.println("이 달의 몇 째 주: " + today.get(Calendar.WEEK_OF_MONTH));
    // DATE와 DAY_OF_MONTH는 같다.
    System.out.println("이 달의 몇 일: " + today.get(Calendar.DATE));
    System.out.println("이 달의 몇 일: " + today.get(Calendar.DAY_OF_MONTH));
    System.out.println("이 해의 몇 일: " + today.get(Calendar.DAY_OF_YEAR));
    // 1:일요일, 2:월요일, ... 7:토요일
    System.out.println("요일(1~7, 1:일요일): " + today.get(Calendar.DAY_OF_WEEK));
    System.out.println("이 달의 몇 째 요일: " + today.get(Calendar.DAY_OF_WEEK_IN_MONTH));
    System.out.println("오전_오후(0:오전, 1:오후): " + today.get(Calendar.AM_PM));
    System.out.println("시간(0~11): " + today.get(Calendar.HOUR));
    System.out.println("시간(0~23): " + today.get(Calendar.HOUR_OF_DAY));
    System.out.println("분(0~59): " + today.get(Calendar.MINUTE));
    System.out.println("초(0~59): " + today.get(Calendar.SECOND));
    System.out.println("1000분의 1초(0~999): " + today.get(Calendar.MILLISECOND));
    // 천분의 1초를 시간으로 표시하기 위해 3600000으로 나누었다.(1시간 = 60 * 60초)
    System.out.println("TimeZone(-12~+12): " + (today.get(Calendar.ZONE_OFFSET) / (60 * 60 * 1000)));
    // 이 달의 마지막 일을 찾는다.
    System.out.println("이 달의 마지막 날: " + today.getActualMaximum(Calendar.DATE));
}

See also

Favorite site