관리 메뉴

오버플로

[Java] Date Class / SimpleDateFormat Class / Locale Class 본문

Java

[Java] Date Class / SimpleDateFormat Class / Locale Class

NACO 2021. 8. 1. 16:53

1. Date Class

- SimpleDateFormat클래스와 함께 형식이 있는 날짜를 사용할 때

- java.util package에서 제공

- 비추천 method가 많음..

 

- 사용법)

  1. 생성 : Date date = new Date();

              Date date1 = new Date(System.currentTimeMillis());

              >> Java에서 유일하게 시간정보를 가진 클래스 : System

              >> System.currentTimeMillis() : 1970년01월01일00시00분00초부터 현재까지 ms로 얻어냄

     * 이 객체를 출력하면 시간이 나온다. 주소가 아닌 값이 나온 이유는!

        Date Class에서 Object의 toString()을 Override했기 때문.

 

2. SimpleDateFormat

 - format 클래스 => 형식을 설정하는 일

 - java.text package에서 제공

 - format은 pattern이 모인 것, pattern은 letter가 모인 것 (letter를 조합해서 pattern만들자)

    (Ex. 2021-07-29 : 각 자리 수, 2, 0, 2, 1이 letter, 2021은 pattern)

 

- 생성) SimpleDateFormat sdf = new SimpleDateFormat(“pattern”);

          SimpleDateFormat sdf = new SimpleDateFormat(“pattern”, Locale);

            pattern : 년 – y | yyyy (년도4자리) / yy (년도2자리)

                        월 – M (1~9까지. 10~12) / MM (01~09로 나옴)

                        일 – d (1~9) / dd(01~09)

                        시 – H, k (1~24) / K,h (1~12)

                        오전|오후 – a

                        분 – m(1~9) / mm (01~09)

                        초 – s (1~9) / ss (01~09)

                        요일 – E (월~일) / EEEE(+요일)

          Locale class : java.util package에서 제공하는 class

                           : JVM이 동작하는 OS에서 지원하는 날짜 형식이 아닌 다른 나라의 날짜형식을 저장한 클래스

- SimpleDateFormat은 형식은 설정하나 날짜 정보가 없음

- 일) 날짜 정보를 넣어서 형식에 맞는 날짜를 얻자

      : String formatDate = sdf.format(new Date());

 


# 오늘의 코딩 #

- 3가지의 Class를 활용하여 다양한 기능을 수행해보자!

package test;

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

/**
 * Date 활용 class
 * @author user
 */
public class NationDate {

	/**
	 * 0~4를 입력받아 해당 국가에서 사용하는 날짜 형식으로 반환하는 method<br>
	 * 0 한국 / 1 미국 / 2 중국 / 3 일본 / 4 영국<br>
	 * @param nationCode 국가 숫자
	 * @return
	 */
	public String nationDateFormat(int nationCode) {
		String resultDate = "";

		Locale[] tempLoc = { Locale.KOREA, Locale.US, Locale.CHINA, Locale.JAPAN, Locale.UK };
 
		if (nationCode > tempLoc.length - 1) {
			nationCode = 0; // 국가 코드가 초과된 경우 한국으로 제공
		} // end if

		SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-yyyy EEEE a HH:mm", tempLoc[nationCode]);
		resultDate = sdf.format(new Date());

		return resultDate;
	}// nationDateFormat

	public static void main(String[] args) {

		NationDate date = new NationDate();
		System.out.println(date.nationDateFormat(2));
		System.out.println(date.nationDateFormat(20));

	}// main
}// class

 

- 나라별 Locale Constant를 배열의 element로 할당하여, parameter로 입력되는 숫자와 대응되도록 작성!

 

# 출력 결과 #

08-01-2021 星期日 下午 16:52
08-01-2021 일요일 오후 16:52

 

성공적!!

'Java' 카테고리의 다른 글

[Java] Calendar Class(2)  (0) 2021.08.03
[Java] Calendar Class / VO Class  (0) 2021.08.02
[Java] StringTokenizer  (0) 2021.07.30
[Java] Math Class  (0) 2021.07.29
[Java] Interface  (0) 2021.07.28
Comments