Java 8 이전에는 Date,Calendar 포멧터로는 SimpleDateForamt
Java 8 이후에는 LocalDate,LocalTime,LocalDateTime 포멧터로는 DateTimeFormatter를 사용합니다.
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class StringToDate {
public static void main(String[] args) throws ParseException {
// 문자열
String dateStr = "2021년 06월 19일 21시 05분 07초";
// 포맷터
SimpleDateFormat formatter = new SimpleDateFormat("yyyy년 MM월 dd일 HH시 mm분 ss초");
// 문자열 -> Date
Date date = formatter.parse(dateStr);
System.out.println(date); // Sat Jun 19 21:05:07 KST 2021
}
}
SimpleDateFormat formatter = new SimpleDateFormat("yyyy년 MM월 dd일 HH시 mm분 ss초");
import java.text.ParseException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class StringToDate {
public static void main(String[] args) throws ParseException {
// 문자열
String dateStr = "2021년 06월 19일 21시 05분 07초";
// 포맷터
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy년 MM월 dd일 HH시 mm분 ss초");
// 문자열 -> Date
LocalDateTime date = LocalDateTime.parse(dateStr, formatter);
System.out.println(date); // 2021-06-19T21:05:07
}
}
이제 String 타입을 Date,LocalDateTime으로 변환을 했으나, Date -> LocalDate,LocalDateTime으로도 변환을 해야할 수도 있습니다.
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Date;
public class DateToLocalDateTime {
public static void main(String[] args) {
// 1. Date 객체 생성 (현재날짜)
Date date = new Date();
// 2. Date -> LocalDate
LocalDate localDate = date.toInstant() // Date -> Instant
.atZone(ZoneId.systemDefault()) // Instant -> ZonedDateTime
.toLocalDate(); // ZonedDateTime -> LocalDate
// 3. Date -> LocalDateTime
LocalDateTime localDateTime = date.toInstant() // Date -> Instant
.atZone(ZoneId.systemDefault()) // Instant -> ZonedDateTime
.toLocalDateTime(); // ZonedDateTime -> LocalDateTime
// 4. Date, LocalDate, LocalDateTime 출력
System.out.println(date); // Sun Jun 20 21:09:20 KST 2021
System.out.println(localDate); // 2021-06-20
System.out.println(localDateTime); // 2021-06-20T21:09:20.461
}
}
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;
public class DateToLocalDateTime {
public static void main(String[] args) {
// 1. Date 객체 생성 (현재날짜)
Date date = new Date();
// 2. Date -> LocalDate
LocalDate localDate = new java.sql.Date(date.getTime()) // java.util.Date -> java.sql.Date
.toLocalDate(); // java.sql.Date -> LocalDate
// 3. Date -> LocalDateTime
LocalDateTime localDateTime = new java.sql.Timestamp(date.getTime()) // java.util.Date -> java.sql.Timestamp
.toLocalDateTime(); // java.sql.Timestamp -> LocalDateTime
// 4. Date, LocalDate, LocalDateTime 출력
System.out.println(date); // Sun Jun 20 21:09:20 KST 2021
System.out.println(localDate); // 2021-06-20
System.out.println(localDateTime); // 2021-06-20T21:09:20.461
}
}