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 |