getInstance() - 기본적으로 시스템의 날짜와 시간에 대한 벙보가 담겨 있음, 인스턴스를 반환 받을 수 있다
-static 인스턴스이다. static이 아니라면 객체 생성 후 호출해야하는 데 Calendar는 추살클래스이기 때문에 객체 생성이 불가능하기 때문이다
태국의 경우 , BuddhistCalendar , 그외에는 GregorianCalendar의 인스턴스를 반환
Calendar → Date
Calendar cal = Calendar.getInstance();
Date d = new Date(cal.getTimeInMillis()); // Date(Long date)
Date → Calender
Date d = new Date();
Calender cal = Calender.getInstance();
cal.setTime(d);
getTimeInMillis() : 1/1000초 단위로 값을 반환 한다
add() | 일 필드의 값을 변경하면 월 필드도 변경 된다 |
roll() | 일필드의 값만 변경 된다 |
지정한 필드 값을 원하는 만큼 증가 또는 감소 |
날짜 계산을 위한 method
boolean isLeapYear(int year) | 매개변수가 윤년이면 true를 아니면 false를 반환 |
int dayDiff(int y1, int m1, int d1, int y2, int m2, int d2) | 두 날짜간의 차이를 일단 일단위로 반환 한다 |
int getDayOfWeek(int year, int month, int day) | 지정한 날짜의 요일을 반환 |
(1~7 1, 일요일 ) | |
String convertDaytoDate(int day) | 일단위의 값을 년월일 형태의 문자열로 변환하여 반환 한다. |
int ConvertDatetoDay(int year, int month, int day) | 년월일을 입력받아서 일단위로 변환 |
DecimalFormat
-숫자 데이터를 정수, 부동소수점, 금액등 다양한 형식으로 표현 가능
-일정한 형식의 텍스트 데이터를 숫자로 변환도 가능
SimpleDateFormat
+dateFormat은 추상클래스로 SimpleDateFormat의 조상이다.
+dateFormat는 추상클래스이므로 인스턴스를 생성하기 위해서는 getDateInstance()와 같은 static메소드를 이용해야 한다.
+getDateInstance()의 반환값 : DataFormat을 상속 박아 완전하게 구현한 SimpleDateFormat 인스턴스
data인스턴스를 Calendar 인스턴스로 변환 할때 calendar클래스의 setTime() 사용
parse(String source) : 문자열 source를 날짜 date 인스턴스로 변환
ChoieFormat : 특ㅂ정 범위에 속하는 값을 문자열로 변환
# : 경계값을 범위에 포함
< : 경계값을 범위에 포함시키지 않는다
MessageFormat : 정해진 양식에 맞게 출력 가능
*다수의 데이터를 같은 양식으로 보낼때 유용
*홑따옴표(')는 MessageFormat의 양식에 escape문자로 사용되기 때문에 문자열msg내에서 사용하려면 연속으로 두번 사용해야 함
java.time 패키지
JDK1.8부터 사용됨
java.time | 날짜와 시간을 다루는데 필요한 핵심 클래스들을 제공 |
java.time.chrono | 표준(IOS)이 아닌 달력 시스템을 위한 클래스들을 제공 |
java.time.format | 날짜와 시간을 파싱하고 , 형식화 하기 위한 클래스들을 제공 |
java.tiem.temporal | 날짜와 시간의 필드와 단위를 위한 클래스들을 제공 |
java.time.zone | 시간대와 관련된 클래스들을 제공 |
위 클래스들의 공통점 : String class처럼 immutable 이다
java.time의 핵심 패키지 :
시간 사용시 ; LocalTime
날짜 사용시 : LocalDate
날짜 + 시간 : LocalDateTime
날짜+시간+시간대 : ZonedDateTime
객체 생성
java.time 패키지에 속한 클래스의 객체를 생성 시키는 가장 기본적인 방법
now() : 현재 날짜와 시간을 저장하는 객체
of() : 해당필드 값을 순서대로 지정해서 사용
날짜와 시간을 정의하기 위한 클래스 : Temporal, temporalAccessor, TemporalAdjuster인터페이스 구현
Duration과 Period : TemporalAmount인터페이스 구현
TemporalUnit (인터페이스) : 날짜와 시간 단위를 구현 해 놓은 것
TemporalUnit을 구현 한 것 : ChronoUnit
TemporalField (인터페이스): 년, 월, 일 등 날짜와 시간 필드를 정의 해 놓은 것
ChronoField : TemporalField 구현 한 것
boolean isSupported(TemporalUnit unit) // Temporal에 정의
boolean isSupported(TemporalFieldt field) // TemporalAccessor에 정의
localDate와 LocalTime을 반환하는 메소드 : now()
localDate와 LocalTime의 객체 생성하는 메소드 : of()
특정 필드값 가져오는 메소드 : get()
필드 값 변경하기 : with(), plus(), minus()
*필드를 변경하는 메소드들은 항상 새로운 객체를 생성해서 반환하므로 대입 연산자와 같이 사용해야 함
날짜와 시간 비교 - isAfter(), isBefore(), isEqual()
compareTo() // 같으면 0, 이전이면 -1, 이후면 1
*equals()가 있는데 isEqual()을 제공하는 이유는 연표가 다른 두 날짜를 비교하기 위해서이다
Instant : 에포크 타임(1970-01-01 00:00:00 UTC)으로 부터 경과된 시간을 나노초 단위로 표현한다.
객체 생성할 떼 : now(), ofEposhSecond()
Instant는 시간을 초단위와 나노초로 나누어 저장한다.
UTC : Coordinated Universal Time : 세계 협정시
1972년 1월 1일부터 시행된 국제 표준시
LocalDateTime → LocalTime 또는 LocalDate로 변환
LocalDateTime → ZonedDateTime : atZone()으로 시간대 정보 추가
ZoneOffSet : UTC로부터 얼마만큼 떨어져 있는지 표현한다.
ZonedDateTime 변환
LocalDate | toLocalDate() |
LocalTime | toLocalTime() |
LocalDateTime | toLocalDateTime() |
OffsetDateTime | toOffsetDateTiem() |
long | toEpochSecond() |
Instant | toInstant() |
TemporalAdjusters : 자주 쓰일 만한 날짜들을 계산 해주는 메소드를 정의해 놓은 것
with() : localTime(), LocalDateTime(), ZonedDateTime(), Instant등 날짜아 시간에 관련되 클래스에 포함 되어 있다.
between과 until() : 날짜, 시간의 차이를 구하기 위한 메소드
between은 static메소드 , until은 인스턴스 메소드 이다
다른 단위로 변환 :
period long toTotalMoths() 년월일을 월단위로 해서 반환
duration | long toDays() | 일단위로 변환해서 반환 |
duration | long toHours() | 시간단위로 변환해서 반환 |
duration | long toMinutes() | 분단위로 변환해서 반환 |
duration | long toMillis() | 천분의 일단위로 변환해서 반환 |
duration | long toNanos() | 나노초 단위로 변환해서 반환 |
'JAVA' 카테고리의 다른 글
BufferedReader와 BufferedWriter (0) | 2021.11.20 |
---|---|
JAVA 기초 문법 4-3(feat. 네트워킹 /소켓) (1) | 2021.04.11 |
JAVA 기초 문법 4-2 (feat.입출력 기본 클래스 ) (0) | 2021.04.11 |
자바 문법 기초 4-1 (feat. 예외처리) (0) | 2021.04.11 |
자바 기초 문법 3 (0) | 2021.04.04 |