본문 바로가기

Java/이론

[Java] Date

자바에서 유용하게 쓸 수 있는 기능 중 하나인

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