728x90
JDK 1.8 이상 날짜, 시간 구하는 클래스
// LocalDate
LocalDate today = LocalDate.now();
System.out.println(today); // 2023-03-08
// LocalTime
LocalTime now = LocalTime.now();
System.out.println(now); // 12:00:00
// LocalDateTime
LocalDateTime nowDateTime = LocalDateTime.now();
System.out.println(nowDateTime); // 2023-03-08T12:00:00
LocalDate
LocalDate는 날짜만 표현하는 클래스입니다. 시간대를 나타내지 않습니다.
LocalTime
시간만 표현하는 클래스입니다. 날짜를 나타내지 않습니다.
LocalDateTime
날짜와 시간 모두를 표현하는 클래스입니다. 날짜와 시간대를 모두 나타냅니다.
LocalDate, LocalTime, LocalDateTime은 모두 Java 8에서 도입된 새로운 날짜와 시간 클래스입니다.
이전의 날짜와 시간 클래스인 Date와 Calendar는 많은 단점을 가지고 있었습니다.
예를 들어, Date와 Calendar는 날짜와 시간대를 구분하지 않아 혼란을 초래했습니다.
또한, Date와 Calendar는 API가 복잡하고 사용하기 어려웠습니다.
LocalDate, LocalTime, LocalDateTime은 이러한 단점을 개선한 새로운 클래스입니다.
날짜와 시간대를 구분하고 API가 간결하고 사용하기 쉽습니다.
따라서, Java 8 버전 이상을 사용하는 경우 LocalDate, LocalTime, LocalDateTime을 사용하는 것이 좋습니다.
현재 날짜를 원하는 포맷으로 출력하는 예제
package javatest;
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.format.TextStyle;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
// 현재 날짜 구하기
LocalDate nowDate = LocalDate.now();
// 해당 도시의 날짜 구하기
LocalDate seoulDate = LocalDate.now(ZoneId.of("Asia/Seoul"));
// String으로 변환
String strDate = seoulDate.format(DateTimeFormatter.ofPattern("YYYY-MM-DD E요일"));
// 결과 출력
System.out.println(strDate);
// 출력결과:
// 2023-08-09 수요일
}
}
.now()
/**
* 기본 시간대의 시스템 시계에서 현재 날짜를 가져옵니다.
* @return null이 아닌 시스템 시계와 기본 시간대를 사용하여 현재 날짜를 반환합니다.
*/
public static LocalDate now() {
return now(Clock.systemDefaultZone());
}
/**
* 지정된 시간대의 시스템 시계에서 현재 날짜를 가져옵니다.
* @param zone 사용할 영역 ID, null이 아님
* @return null이 아닌 시스템 시계를 사용하여 현재 날짜를 반환합니다.
*/
public static LocalDate now(ZoneId zone) {
return now(Clock.system(zone));
}
.format
/**
* 지정된 포맷터를 사용하여 이 날짜를 포맷합니다.
* <p>
* 이 날짜는 포맷터에 전달되어 문자열을 생성합니다.
*
* @param formatter null이 아닌 사용할 포맷터
* @return null이 아닌 형식화된 날짜 문자열을 반환합니다.
* @throws DateTimeException 인쇄 중 오류 발생 시
*/
@Override // Javadoc 및 성능을 위해 override
public String format(DateTimeFormatter formatter) {
Objects.requireNonNull(formatter, "formatter");
return formatter.format(this);
}
DateTimeFormatter
날짜-시간 개체 인쇄 및 구문 분석을 위한 포맷터.
미리 정의된 여러 패턴을 제공하거나 고유한 사용자 지정 패턴을 만들 수 있습니다.
// LocalDateTime의 now()메소드를 사용해 현재시간 구함
LocalDateTime now = LocalDateTime.now();
// 지정된 패턴을 사용해 포맷터를 만든다
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy MM dd");
// ormat 메서드로 특정 패턴의 문자열 생성
String text = date.format(formatter);
// parse 메서드로 문자열을 파싱하여 LocalDate 객체 생성
LocalDate parsedDate = LocalDate.parse(text, formatter);
728x90
'STUDY > JAVA' 카테고리의 다른 글
[JAVA] Cipher - 암호화 복호화 (0) | 2023.09.15 |
---|---|
[JAVA] 운영체제 경로 구분자 System.getProperty() (0) | 2023.08.24 |
[JAVA] split() 문자열 잘라서 배열로 반환 (0) | 2023.07.18 |
[JAVA] 문자열 치환 replace(), replaceAll() 차이점 (0) | 2023.07.18 |
[JAVA] Map 중복 키 허용 방법 (0) | 2023.06.26 |