Contents
접기
LocalDate, Calendar : 날짜와 시간
Uses of Class java.time.LocalDate (Java Platform SE 8 )
LocalDate IsoChronology.date(Era era, int yearOfEra, int month, int dayOfMonth) Obtains an ISO local date from the era, year-of-era, month-of-year and day-of-month fields.
docs.oracle.com
Uses of Class java.time.LocalDate (Java Platform SE 8 )
LocalDate IsoChronology.date(Era era, int yearOfEra, int month, int dayOfMonth) Obtains an ISO local date from the era, year-of-era, month-of-year and day-of-month fields.
docs.oracle.com
LocalDate 사용
package timeset;
import java.time.Clock;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.Year;
import java.time.ZoneId;
public class LocalDateTest01 {
public static void main(String[] args) {
LocalDate d1 = LocalDate.now();
LocalDate d2 = LocalDate.of(2024,1,1);
LocalTime t1 = LocalTime.now();
LocalTime t2 = LocalTime.of(14,26,10);
System.out.printf("LocalDate now() : %s%n", d1);
System.out.printf("LocalDate of() : %s%n", d2);
System.out.printf("LocalTime now() : %s%n", t1);
System.out.printf("LocalTime of() : %s%n", t2);
LocalDateTime ld1 = LocalDateTime.now();
System.out.printf("LocalDateTime now() : %s%n", ld1);
LocalDateTime ld2 = LocalDate.now().atTime(LocalTime.MIDNIGHT);
System.out.printf("LocalDateTime MIDNIGHT() : %s%n", ld2);
LocalDateTime ld3 = LocalDate.now().atTime(LocalTime.MAX);
System.out.printf("LocalDateTime max() : %s%n", ld3);
//now
LocalDateTime time1 = LocalDateTime.now();
LocalDateTime time2 = LocalDateTime.now(Clock.systemDefaultZone());
LocalDateTime time3 = LocalDateTime.now(ZoneId.of("Asia/Seoul"));
//of
LocalDateTime time4 = LocalDateTime.of(2024,1,15,0,0,0);
LocalDateTime time5 = LocalDateTime.of(LocalDate.now(), LocalTime.now());
LocalDateTime independent = LocalDateTime.parse("1945-08-15T15:36:00.000");
System.out.println("광복절 일왕 방송" + independent);
LocalDateTime xmas = LocalDateTime.of(2024, 12,25,0,0,0);
System.out.println("2024년 크리스마스" + xmas);
LocalDateTime vote = Year.of(2024).atMonth(4).atDay(10).atTime(10,00);
System.out.println("22대 국회의원선거일" + vote);
LocalDateTime time7 = LocalDate.now().atTime(10,30);
LocalDateTime time6 = Year.of(2024).atMonth(1).atDay(15).atTime(10,30);
}
}
출력 형식
package timeset;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class LocalDateTest02 {
public static void main(String[] args) {
LocalDateTime now = LocalDateTime.of(2024,1,30,15,13,00);
System.out.println("그냥 출력: " + now);
String format1 = now.format(
DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS"));
System.out.println("포맷1: " + format1);
String format2 = now.format(
DateTimeFormatter.ofPattern("yyyy년 MM월 dd일 HH시 mm분 ss.SSS초"));
System.out.println("포맷2: " + format2);
String format3 = now.format(DateTimeFormatter.ISO_LOCAL_DATE);
System.out.println("포맷3: " + format3);
}
}
날짜만 (날짜 세기)
package timeset;
import java.time.LocalDateTime;
public class LocalDateTest03 {
public static void main(String[] args) {
LocalDateTime now = LocalDateTime.now();
now = LocalDateTime.of(2023,12,25,12,30);
System.out.println("현재: " + now);
System.out.println("Year ====> " + now.getYear());
System.out.println("Month ====> " + now.getMonth());
System.out.println("Day of Month ====> " + now.getDayOfMonth());
// 그 달에 몇 번째 날짜인가
System.out.println("Day of Week ====>" + now.getDayOfWeek());
System.out.println("Day of Year ====>" + now.getDayOfYear());
// 그 해에 몇 번째 날짜인가
System.out.println("Hour ====> " + now.getHour());
System.out.println("Minute ====> " + now.getMinute());
System.out.println("Second ====> " + now.getSecond());
System.out.println("Nano Second ====> " + now.getNano());
}
}
후 / 전
package timeset;
import java.time.LocalDateTime;
public class LocalDateTest04 {
public static void main(String[] args) {
LocalDateTime now = LocalDateTime.now();
System.out.println("현재 시간은 : " + now);
System.out.println();
System.out.println("10년 후: " + now.plusYears(10));
System.out.println("10년 전: " + now.minusYears(10));
System.out.println();
System.out.println("10개월 후: " + now.plusMonths(10));
System.out.println("10개월 전: " + now.minusMonths(10));
System.out.println();
System.out.println("10일 후: " + now.plusDays(10));
System.out.println("10일 전: " + now.minusDays(10));
System.out.println();
System.out.println("10분 후: " + now.plusMinutes(10));
System.out.println("10분 전: " + now.minusMinutes(10));
System.out.println();
System.out.println("10초 후: " + now.plusSeconds(10));
System.out.println("10초 전: " + now.minusSeconds(10));
System.out.println();
}
}
이전 / 이후 / 동일
package timeset;
import java.time.LocalDate;
public class LocalDateTest05 {
public static void main(String[] args) {
LocalDate koreanWar = LocalDate.of(1950, 6, 25);
LocalDate independence = LocalDate.of(1945, 8, 15);
LocalDate surrender = LocalDate.of(1945, 8, 15);
if(independence.isBefore(koreanWar))
System.out.println("광복 이후에 전쟁이 발발 하였다.");
if(koreanWar.isAfter(independence))
System.out.println("한국 전쟁은 광복 이후에 발발 하였다.");
if(independence.isEqual(surrender))
System.out.println("일왕의 항복 선언은 대한독립과 같은 날 일어났다.");
if(independence.compareTo(surrender) == 0 )
System.out.println("일왕의 항복 선언은 대한독립과 같은 날 일어났다.");
}
}
Calendar 사용
package timeset;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class CalenderTest01 {
public static void main(String[] args) {
// Calendar c = new Calendar();
// abstract 클래스 이기 때문에 객체 생성 불가
Calendar c = Calendar.getInstance();
// System.out.println(c.get(Calendar.DAY_OF_YEAR));
// 상수로 구성되어 있다.
Date d = new Date();
System.out.println(d);
GregorianCalendar g = new GregorianCalendar();
// Calendar g = new GregorianCalendar(); :: 업캐스팅
int year = g.get(Calendar.YEAR);
int month = g.get(Calendar.MONTH);
int date = g.get(Calendar.DATE);
int hour = g.get(Calendar.HOUR);
int minute = g.get(Calendar.MINUTE);
int second = g.get(Calendar.SECOND);
int yoil = g.get(Calendar.DAY_OF_WEEK);
// 화요일 이라고 쓰고 싶으면 switch 문
// 일요일 부터 시작
System.out.printf("%d년 %d월 %d일, %d요일 %d:%d:%d%n",
year, month+1 , date, yoil, hour, minute, second);
}
}
코드 | 의미 |
Calendar c = Calendar.getInstance(); | 추상 클래스이기 때문에 객체를 생성할 수 없다. getInstance() 로 읽어 온다. |
GregorianCalendar g = new GregorianCalendar(); // Calendar g = new GregorianCalendar(); |
업캐스팅도 가능하다. |
익명클래스 Anonymous
- 클래스의 선언과 객체 생성을 동시에 하기 때문에 단 한번만 사용 될 수 있으며 오직 하나의 객체를 생성하는 일회용 클래스이다.
- 이름이 없기 때문에 생성자도 가질 수 없다.
package timeset;
interface Sample{
public int add(int x, int y);
}
public class AnonymousClassTest {
public static void main(String[] args) {
// implements 를 안쓰고 사용할 수 있는
Sample s = new Sample() {
@Override
public int add(int x, int y) {
return x+y;
}
};
System.out.println(s.add(10,20));
}
}
코드 | 의미 |
Sample s = new Sample() { @Override public int add(int x, int y) { return x+y; } }; |
implements 를 안쓰고 사용할 수 있다. 강제 Override |
'국비 교육 > 백엔드(Java, Spring)' 카테고리의 다른 글
[자바] ENUM (0) | 2024.02.13 |
---|---|
[자바] 입출력 I/O 와 Stream (0) | 2024.01.30 |
[자바] 예외 Exception (0) | 2024.01.30 |
[자바] String 예제 - 주민번호 검증 프로그램 (0) | 2024.01.29 |