JAVA

Java 날짜와 시간 표현

서묘_ 2021. 12. 27. 16:05

날짜와 시간 표현에 사용되는 패키지, 클레스들

 

java.util.Date 클래스 - 날짜 표현, 객체간 날짜 장보를 주고 받을 때 사용

java.util.Calenda 클래스 - 달력 표현, 날짜 계산 작업시 사용 (String), 추상 클래스

java.time 패키지

 

* 변환에 사용되는 메서드들

 

parse - String 타입에서 -> 다른 타입으로 변환

Integer.parseInt("문자열") - 정수로 이루어진 문자열이라면 정수로 변환 (String -> int)

 

SimpleDateFormat 클래스 - 날짜 형식 지정 클래스

    SimpleDateFormat("패턴") 생성자를 사용하면 날짜를 해당 패턴으로 지정

SimpleDateFormat.parse("패턴") - 해당 패턴대로 날짜로 변환 (String -> Date)

 

formet - 다른 타입에서 -> String 타입으로 변환

SimpleDateFormat.format(Date) : Date -> String

 

import java.util.Date;

public class DateEx {
	public static void main(String[] args) {
		Date date = new Date();
		System.out.println(date);
	}
}

-> Mon Dec 27 15:18:51 KST 2021

현재 시간

 

import java.text.SimpleDateFormat;
import java.util.Date;

public class DateEx {
	public static void main(String[] args) {
		Date date = new Date();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); //"yyyy/MM/dd" 패턴 지정
		String now = sdf.format(date); //Date -> String
		System.out.println(now);	
	}
}

-> 2021/12/27

날짜에 패턴을 지정하고 문자열로 변환

 

여기까지 now는 String타입 "2021/12/27" 문자열로 되어있다.

 

		Date nowdate = sdf.parse(now); //String -> Date
				
		Calendar calendar = Calendar.getInstance(); //추상클래스로 new가 아닌 get메서드로 사용
		calendar.setTime(nowdate);//Date -> Calendar
		
		calendar.add(Calendar.MONTH, 6); //MONTH 에 6 추가
	
		Date after6date = new Date(calendar.getTimeInMillis()); // Calendar -> Date
		
		String after6 = sdf.format(after6date);//Date -> String
		System.out.println("6개월 후 - " + after6);

-> 6개월 후 - 2022/06/27

변환되는 타입을 잘 보고 쓰기!

 

 

열심히 썼던 요일 출력 예제..

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;

public class DateEx2 {

	//화면에 날짜 (yyyy/MM/dd)를 입력받아 입력한 날짜의 요일을 출력하세요
		public static void main(String[] args) throws ParseException {

			Scanner scan = new Scanner(System.in);
			System.out.println("요일을 알고싶은 날짜를 입력해주세요 yyyy.MM.dd");
			String input = scan.next();
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");
			Date day = sdf.parse(input);
			
			Calendar cday = Calendar.getInstance();
			cday.setTime(day);

			int week = cday.get(Calendar.DAY_OF_WEEK);
			if(week == Calendar.SUNDAY) {
				System.out.println("일요일입니다");
			}else if(week == Calendar.MONDAY) {
				System.out.println("월요일입니다");
			}else if(week == Calendar.TUESDAY) {
				System.out.println("화요일입니다");
			}else if(week == Calendar.WEDNESDAY) {
				System.out.println("수요일입니다");
			}else if(week == Calendar.THURSDAY) {
				System.out.println("목요일입니다");
			}else if(week == Calendar.FRIDAY) {
				System.out.println("금요일입니다");
			}else if(week == Calendar.SATURDAY) {
				System.out.println("토요일입니다");
			}			
		}
}