지역화 : 지역에 따라서 시간, 통화(원, 달러, 엔 등) 언어등에 대하여 고려하는 프로그래밍
Date date = new Date();
SimpleDateFormat ft = new SimpleDateFormat ("yyyy.MM.dd 'at' hh:mm:ss a zzz");
System.out.println(ft.format(date));
// 출력 결과 : 2022.11.08 at 13:35:12 오전KST
System.out.println(date.getTime());
// System이 가지고 있는 currentTimeMillis()메소드를 이용해도 됩니다.
long today = System.currentTimeMillis();
System.out.println(today);
java.util 패키지의 클래스들 중 하나이다.
공식 문서 : https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Calendar.html
JDK 1.1 때 만들어졌다.
Calendar 클래스는 추상 클래스이다.
추상 클래스
- 하나 이상의 추상 메서드를 포함한 클래스
- new 키워드를 사용하여 인스턴스를 생성할 수 없다.
- 해당 클래스를 상속받아 구현한 클래스의 인스턴스를 생성해 주어야 한다.
Calendar 클래스에 대한 인스턴스를 생성하려면 Calendar가 가지고 있는 클래스 메소드 getInstance()를 사용해야 한다.
getInstance() 메소드를 호출하면 내부적으로 java.util.GregorianCalendar 인스턴스를 만들어서 리턴한다.
Calendar cal = Calendar.getInstance();
int yyyy = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH) + 1; // 월은 0부터 시작합니다.
int date = cal.get(Calendar.DATE);
int hour = cal.get(Calendar.HOUR); // 2
int hour_total = cal.get(Calendar.HOUR_OF_DAY); // 14
int minute = cal.get(Calendar.MINUTE);
cal.add(Calendar.HOUR, 5);
java.util 패키지의 Date와 Calendar 클래스에는 다양한 문제점이 존재.
(기능 부족 또는 복잡한 API 문서)
공식 문서 : https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/time/package-summary.html
Java SE 8 버전부터 새롭게 디자인한 Date, Time API 를 제공.
LocalDateTime timePoint = LocalDateTime.now(); // 현재의 날짜와 시간
System.out.println(timePoint); // 2022-11-08T14:28:05
// 2012년 12월 12일의 시간에 대한 정보를 가지는 LocalDate객체를 만드는 방법
LocalDate ld1 = LocalDate.of(2012, Month.DECEMBER, 12); // 2012-12-12 from values
// 17시 18분에 대한 LocalTime객체를 구한다.
LocalTime lt1 = LocalTime.of(17, 18); // 17:18 (17시 18분)
// 10시 15분 30초라는 문자열에 대한 LocalTime객체를 구한다.
LocalTime lt2 = LocalTime.parse("10:15:30"); // From a String
LocalDate theDate = timePoint.toLocalDate();
Month month = timePoint.getMonth(); // 1월 부터 시작한다.
int day = timePoint.getDayOfMonth();
int hour = timePoint.getHour();
int minute = timePoint.getMinute();
int second = timePoint.getSecond();
// 달을 숫자로 출력한다 1월도 1부터 시작하는 것을 알 수 있습니다.
System.out.println(month.getValue() + "/" + day + " " + hour + ":" + minute + ":" + second);