ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Java] LocalDateTime
    프로그래밍/JAVA 2022. 8. 16. 12:59
    728x90

     

     

    java.time 패키지에는 날짜를 표현하는데 사용되는 LocalDate 클래스와 시간을 표현하는데 사용되는 LocalTime 클래스, 날짜와 시간을 동시에 출력하는 LocalDateTime 클래스가 있다.

     

     

    now() 메소드는 현재 날짜와 시간을 객체로 생성하여 반환한다.

    of() 메소드는 특정 날짜와 시간을 지정하여 객체로 생성하여 반환한다.

     

    LocalDateTime now = LocalDateTime.now();
    System.out.println(now);
    
    LocalDateTime targetTime = LocalDateTime.of(2022,01,01,10,22,00);
    System.out.println(targetTime);
    
    /* 실행결과
    2022-08-16T12:30:00.000
    2022-01-01T10:22:00
    */

     

     

    날짜 비교하기

    LocalDate startTime = LocalDate.now();
    System.out.println("startTime = " + startTime);
    
    LocalDate endTime = LocalDate.of(2022, 10, 22);
    System.out.println("endTime = " + endTime);
    
    
    System.out.println(startTime.isBefore(endTime));
    System.out.println(startTime.isAfter(endTime));
    
    
    
    
    /* 실행결과
    startTime = 2022-08-16
    endTime = 2022-10-22
    true
    false
    */

     


     

     

    나는 프로젝트 중 날짜 형식인 문자열을 LocalDateTime으로 변환하여 DB 에 삽입하기를 희망한다.

    즉, String 타입을 LocalDateTime 타입으로 변환 해줘야한다.

     

     

    LocalDateTime.parse() 사용하면 문자열을 LocalDateTime으로 변환할 수 있다.

    String now = "2022-03-13T11:17:21";
    LocalDateTime.parse(now)

    이때 now의 문자열은 반드시 날짜 형태여야한다. 만약 'T'가 없으면 java.time.format.DateTimeParseException 에러가 발생한다.

     

     

     

     

    상황 : 현재시간을 받아서 원하는 크기만큼 자르고 그 값에 대해서 DB에서 활용하고 싶었다.

    LocalDateTime now = LocalDateTime.now(); // 현재시간 구하는 객체, 2022-03-13T11:17:21.211432100
    String strNow = String.valueOf(now).substring(0,19); // 2022-03-13T11:17:21
    LocalDateTime local = LocalDateTime.parse(strNow); // 타입변환
    
    // JPA를 활용하여 DB에 
    List<Table> table = tableRepository.findFirstByDateGreaterThan(local);

    현재 시간을 구하고 String 타입으로 변환하여 substring 으로 문자열을 원하는 크기로 자른다. String 타입인 strNow를 다시 parse를 활용하여 LocalDateTime으로 변환하여 DB에 삽입하였다.

     

     

     

     

    728x90

    '프로그래밍 > JAVA' 카테고리의 다른 글

    [Java] Selenium(셀레니움)  (0) 2022.08.18
    [Java] 크롤링(Crawling)  (0) 2022.08.17
    [Java] swing  (0) 2022.08.16
    [Java] 소켓 통신(socket)  (0) 2022.08.15
    [Java] 람다 표현식(lambda expression)  (0) 2022.08.15

    댓글

Designed by Tistory.