본문 바로가기

프로그래밍 언어/JAVA

[JAVA] SimpleDateFormat 날짜 String 데이터 형식 '요일' 한글로 출력하기 JAVA에서 날짜 정보에 요일까지 포함된 정보를 전달해주는 코드를 구현하였는데 출력된 형식을 보았더니 요일이 영문으로 표기 되고 있었다 요일을 특정 언어로 출력하고 싶을때 사용하려면 아래와 같이 속성 파라미터 하나를 추가해주면 된다. 2021-09-29 (Wed) -> 2021.09.29(수) import java.util.Locale; SimpleDateFormat newFormat = new SimpleDateFormat("yyyy-MM-dd (E)", Locale.KOREA); 한글로 월,화,수,목,금,토,일 로 요일을 적용하기 위해서는 아래와 같이 파라미터를 추가해주면 된다. SimpleDateFormat newFormat = new SimpleDateFormat("yyyy-MM-dd (E)", .. 더보기
[JAVA] String -> LocalDate 날짜 형식 변환하여 두 날짜 간 일 수 차이 구하기(Period 이용) String date1 = "2021-09-29 12:00"; String date2 = "2021-10-01 14:00"; LocalDate changeDate1= LocalDate.parse(date1, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")); LocalDate changeDate2= LocalDate.parse(date2, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")); import java.time.Period; Period.between(changeDate1,changeDate2).getDays(); System.out.println("result : " + Period.between(changeDate1,.. 더보기
[JAVA] List 내부에 포함된 null 항목 삭제하기 Java List 객체에서 null인 항목 삭제하기 | 문제 상황 DB에서 List 를 꺼내왔는데 해당 컬럼에 null 이 포함되어 있어 정상적으로 코드가 실행되지 않는 문제가 발생 | 해결방법 List null 이 있는 경우 null인 항목이 제거된 새로운 List 를 만들어 실행 방법 1) List.remove() List를 null이 없을때까지 반복문을 돌려가며 지우기 List list = new ArrayList(Arrays.asList("a", null, "c", "d", null)); while(list.remove(null)){ } list.remove() 를 실행하면 null 이 포함된 첫번쨰 항목을 제거한 후 true를 리턴한다. 모든 null 항목을 처리하기 위하여 while 문에 넣어.. 더보기
[JPA] Native Query 이용하여 테이블 여러 개 union 하고 Paging 처리하여 보여주기 Springboot 에서 JPA 를 이용하여 CRUD 작업을 하는 플젝을 진행하던 중 오류가 발생하여 그 tracking 과정을 정리해보았다. | 발생오류 로그 "message": "could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet" | Issue Tracking 기본적으로 DB와 같은 구조를 가진 Entity 클래스의 Repository interface 를 생성하고 그 안에 JPA 쿼리문 작업을 진행한다. public interface TestRepository extends JpaRepository { JPARep.. 더보기
[Lombok] Spring Boot 생성자 어노테이션 비교 정리 Spring Boot 로 개발하다보면 Lombok jar파일을 이용하여 개발을 아주 간편하게 할수 있어 자주 사용된다. 각 어노테이션별 사용법 차이를 알아보자. | 생성자 어노테이션 종류 @NoArgsConstructor @AllArgsConstructor @RequiredArgsConstructor @NoArgsConstructor - 파라미터가 없는 생성자 해당 어노테이션을 class 위에 정의하면 파라미터가 없는 생성자를 자동으로 생성한다. 만약 final로 필드를 정의한 경우 오류 메세지가 발생한다. @NonNull 어노테이션이 붙어있는 필드가 있다면 해당 생성자에서 확인하지 않는다. @AllArgsConstructor - 모든 필드를 파라미터로 가지는 생성자 모든 필드를 파라미터로 가지는 생성자.. 더보기
[SpringBoot] 지정 시간에 배치 @Scheduled cron 속성 세팅 방법 스프링 부트 이용하여 배치 작업하는 코드 작성하기 @Scheduled(cron = "0 0 12 * * *") public void startBatch(){ log.info("배치 시작"); batchService.checkService(); log.info("배치 끝"); } 매일 정오에 checkService()가 실행되기 위해서는 Service에 위와 같이 코드를 작성한다. 사용 예 표현식 의미 0 0 12 * * * 매일 12시에 실행 0 15 10 * * * 매일 10시 15분에 실행 0 * 14 * * * 매일 14시에 0분~59분까지 매분 실행 0 0/5 14 * * * 매일 14시에 시작해서 5분 간격으로 실행 0 0/5 14,18 * * * 매일 14시, 18시에 시작해서 5분 간격으로 .. 더보기
[JAVA] SimpleDateFormat 이용하여 원하는 형식으로 날짜 출력하기 개발하다보면 DB에 저장해둔 날짜형식을 다른 형식으로 변경하여 다른곳에 사용해야할 때가 있다. 그때 활용하게 되는게, SimpleDateFormat 객체이다. 해당 객체를 사용하기 위해서는 import 를 해주어야한다. import java.text.SimpleDateFormat; 원하는 동작 2021-06-08 11:00 -> 20210608110055 / 20210608 먼저 변경되기 전 format의 객체를 생성한다. SimpleDateFormat oldFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm"); 변경할 format의 객체를 생성한다. SimpleDateFormat newFormat = new SimpleDateFormat("yyyyMMddHHmmss".. 더보기