자바에서 유용하게 쓸 수 있는 기능 중 하나인
LocalDate 기능에 대해서 알아봅시다.
LocalDate는 날짜와 시간을 알 수 있는 클래스 입니다.
import를 사용해서 쓸 수 있는 기본 내장 기능입니다.
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
public class DateMain {
public static void main(String[] args) {
System.out.println(LocalDate.now());
- 현재 날짜를 출력합니다.
System.out.println(LocalTime.now());
- 현재 시간을 가져옵니다.
System.out.println(LocalDateTime.now());
-현재 시간과 날짜를 출력합니다.
System.out.println(LocalDate.of(2025,12,16));
-해당 괄호안 날짜를 출력합니다.
}
}
Callender라는 기능도 있습니다.
import java.util.Calendar;
Callender를 import하고
Calendar c = Calendar.getInstance();
객체를 하나 생성해줍니다.
System.out.println(c.get(Calendar.YEAR)); - 년도
System.out.println(c.get(Calendar.MONTH)); - 월
System.out.println(c.get(Calendar.DAY_OF_MONTH)); - 일
System.out.println(c.get(Calendar.DAY_OF_WEEK)); - 1 ~ 7 (일 ~ 토)
System.out.println(c.get(Calendar.HOUR)); - 시간
System.out.println(c.get(Calendar.MINUTE)); - 분
System.out.println(c.get(Calendar.SECOND)); - 초
각각 get함수를 써서 현재 날짜의 정보를 가져올 수 있습니다.
최근에 가장 많이 쓰이는 것은 Date인데요.
Date역시 import해서 사용할 수 있습니다.
import java.util.Date;
그리고 객체를 생성하면 현재 날짜가 객체로 들어가게 됩니다.
Date d = new Date();
System.out.println(d);
출력해보면
Mon Dec 16 15:13:36 KST 2024
위와 같이 현재 날짜가 출력됩니다.
현재 연도를 가져오려면 getYear를 사용하면 됩니다.
그런데 1900년도부터 몇년이 흘렀는지의 년도가 가져와지므로
d.getYear() + 1900
뒤에 1900을 더해주면 현재 년도가 나오게 됩니다.
d.getMonth() + 1
달 역시 1을 더해줘야 현재 달이 나옵니다.
System.out.println(d.getDate());
getDate를 사용하면 현재 일을 불러옵니다.
System.out.println(d.getDay());
요일을 불러오는데 숫자로 0~6 -> (일 ~ 토)에 해당하는
숫자를 불러옵니다.
String [] day = {"일", "월", "화", "수", "목", "금", "토"};
System.out.println(day[d.getDay()]+ "요일");
따라서 다음과 같이 배열을 만들어서 요일을 불러올 수 있습니다.
Date d2 = new Date(1999,2,28)
다음은 이렇게 날짜 객체를 만들 수 있는데
파라미터로 순서대로 (연, 월, 일, 시, 분, 초)가 들어갈 수 있습니다.
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd E a hh:mm");
SimpleDateFormat이라는 기능을 쓰면 문자열에 날짜를 넣을 수 있습니다.
String s1 = sdf.format(d);
데이터 포맷팅을 하고
System.out.println(s1);
출력을 해보면
yyyy/MM/dd E a hh:mm
2024/12/16 월 오후 03:23
이 조건에 해당하는 날짜가 출력되게 됩니다.
반대로 문자열을 날짜로 바꿀 수도 있는데
String s2 = "2000/12/16";
문자열을 하나 만들어주고
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd");
괄호안에 조건을 맞추어서 객체를 만들어주면 됩니다.
Date d3 = sdf2.parse(s2);
객체를 다시 문자열로 바꾸면
Sat Dec 16 00:00:00 KST 2000
해당 날짜를 출력할 수 있습니다.
try {
Date d3 = sdf2.parse(s2);
System.out.println(d3);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
이때 try-catch로 parse예외처리를 해줘야지
오류가 안뜨게 됩니다.
여러가지 날짜 기능에 대해 기록하다보니
포스팅이 길어졌네요.
Date 기능을 사용해서 시간 관련한 다양한 기능을
구현할 수 있을 것 같습니다.
긴 글 읽어주셔서 감사합니다!
'Java > 이론' 카테고리의 다른 글
[Java] String 기능 (0) | 2024.12.17 |
---|---|
[Java] Wrapper Class (0) | 2024.12.16 |
[Java] 에러 핸들링 (0) | 2024.12.16 |
[Java] GUI(Graphical User Interface) (0) | 2024.12.16 |
[Java] Factory (0) | 2024.12.13 |