JAVA/이론
[JAVA] 날짜, 시간
sirius
2021. 3. 22. 09:49
Class | Description |
java.util.Date | 특정 날짜를 저장한다. |
java.util.Calendar | 일시에 대한 다양한 조작을 한다. |
java.text.SimpleDateFormat | 지정한 서식에 따라 문자열을 Date 클래스로 변환하거나, 그 반대로 처리한다. |
Date
import java.util.Date;
public class Main {
public static void main(String[] args) {
Date now = new Date();
System.out.println(now);
}
}
Calendar
import java.util.Calendar;
import java.util.Date;
public class Main {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_MONTH, 1);
Date nextDay = cal.getTime();
System.out.println(nextDay);
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH);
int day = cal.get(Calendar.DATE);
int hour = cal.get(Calendar.HOUR);
int minute = cal.get(Calendar.MINUTE);
int second = cal.get(Calendar.SECOND);
}
}
Calendar 클래스의 add 메서드의 Parameter
void java.util.Calendar.add(int field, int amount)
Parameter | Description |
field | Calendar 클래스의 상수(다음 표를 참고) |
amount | 변경될 양을 설정(마이너스 값도 설정 가능) |
Calendar 클래스의 add 메서드의 field
Field | Description |
YEAR | 연 |
MONTH | 월 |
DATE | 일 |
DAY_OF_MONTH | 일(DATE와 같음) |
HOUR_OF_DAY | 24시간제 시간 |
HOUR | 12시간제 시간 |
MINUTE | 분 |
SECOND | 초 |
MILLISECOND | 밀리초 |
날짜 데이터의 특정 항목
Field | Description |
Calendar.YEAR | 현재 연도 |
Calendar.MONTH | 현재 월 (1월은 0) |
Calendar.DATE | 현재 월의 날짜 |
Calendar.WEEK_OF_YEAR | 현재 년도의 몇째 주 |
Calenda.WEEK_OF_MONTH | 현재 월의 몇째 주 |
Calendar.DAY_OF_YEAR | 현재 년도의 날짜 |
Calendar.DAY_OF_MONTH | 현재 월의 날짜(DATE와 같음) |
Calendar.DAY_OF_WEEK | 현재 요일(일요일은 1, 토요일은 7) |
Calendar.HOUR_OF_DAY | 현재 시간(24시간제 시간) |
Calendar.HOUR | 현재 시간(12시간제 시간) |
Calendar.MINUTE | 현재 분 |
Calendar.SECOND | 현재 초 |
SimpleDateFormat
SimpleDateFormat 클래스는 클래스의 생성자로 미리 서식을 설정해 둔다.
나머지는 format 메서드의 인수로 Date 클래스를 넘겨주면 서식에 맞게 날짜를 출력할 수 있다.
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class Main {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
Date date = cal.getTime();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
String formatStr = sdf.format(date);
System.out.println(formatStr);
}
}
Symbol | Description | Example |
y | year : 년도 | yy : 14 , yyyy : 2014 |
M | month in year : 월 | M : 1, MM : 01, MMM : 1월 |
d | day in month : 일 | d : 1, dd : 01, ddd : 001, dddd : 0001 |
h | hour in am/pm(1-12) : 시 | h : 1 , hh : 01, hhh : 001, hhhh : 0001 |
a | am/pm marker | a : 오후 (AM/PM 으로 표시하려면 format에서 Locale.US를 지정) |
k | hour in day (1-24) : 시 | k : 13, kk : 13, kkk : 013, kkkk : 0013 |
m | minute in hour : 분 | m : 20, mm: 20, mmm : 020, mmmm : 0020 |
s | second in minute : 초 | s : 10, ss : 10, sss : 010. ssss: 0010 |
w | week in year : 주(년기준) | w : 1, ww : 01, www :001, wwww : 0001 |
D | day in year : 일(년기준) | D : 1, DD : 01, DDD: 001, DDDD : 0001 |
E | day of week : 요일 | E : 수 |
F | day of week in month : 월 기준 주간 요일 순번 |
F : 1, FF : 01, FFF:001, FFFF:0001 |
G | era designator : 시대 | AD |
H | hour in day (0-23) : 시 | H: 13, HH : 13, HHH : 013 , HHHH:0013 |
K | hour in am/pm(0-11) : 시 | K: 1 , KK : 01, KKK :001, KKKK: 0001 |
S | fractional seconds : 초 | S : 402 |
W | week in month : 주 (월기준) | W : 1, WW : 01, WWW : 001, WWWW : 0001 |
z | time zone | z : KST, zzzz: 한국표준시 |
Z | time zone (RFC 822) | Z : +0900 |