갓생사는 김초원의 개발 블로그
chocho_log
갓생사는 김초원의 개발 블로그
전체 방문자
오늘
어제
  • 분류 전체보기 (76)
    • 개발 (22)
      • Spring (4)
      • Java (3)
      • Database (2)
      • Elasticsearch (3)
      • ETC (3)
      • JPA (3)
      • 이슈 (1)
    • 코딩 테스트 (43)
      • 프로그래머스 (23)
      • 백준 (12)
      • TIP (8)
    • 자료구조 (2)
    • 알고리즘 (4)
    • 잡생각 (0)
    • 경험 (3)
      • AWS re:Invent 2024 (3)

블로그 메뉴

    공지사항

    인기 글

    태그

    • Lazy Loading
    • 디자인패턴 #SOLID 원칙
    • jar
    • querydsl
    • Spring Boot Embedded Tomcat
    • 지연로딩
    • war
    • jpa

    최근 댓글

    최근 글

    갓생사는 김초원의 개발 블로그

    chocho_log

    [JAVA] 날짜, 시간 계산 총 정리
    코딩 테스트/TIP

    [JAVA] 날짜, 시간 계산 총 정리

    2020. 11. 24. 01:26

    1. 날짜 원하는 형식으로 출력하기 

    // 날짜 초 소숫점까지 나타내기.
    Date date = new Date();
    SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS"); // 초 소숫점 세자리까지 나타내기 
    System.out.println(simpleDateFormat1.format(date));
    
    SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-MM-dd hh:mm");
    System.out.println(simpleDateFormat2.format(date));
            
    
    //
    2020-11-24 01:12:55.219
    2020-11-24 01:12

     

    2. 문자열을 Date객체로 형변환하기

    // 문자열을 Date객체로 형변환하기
    String dateStr = "2016-09-15 01:00:04.002";
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS");
    Date date = simpleDateFormat.parse(dateStr);
    System.out.println(date);
    
    //
    Thu Sep 15 01:00:04 KST 2016

     

    3. 시간 초 소숫점자리 연산 

    - 더하기 

    // 시간 초 소숫점 자리까지 더하기, 빼기
            String dateStr = "2016-09-15 01:00:04.002";
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS");
            double second = 2.000; // 2초
    
            Date date = simpleDateFormat.parse(dateStr);
            Calendar cal = Calendar.getInstance();
            cal.setTime(date);
            cal.add(Calendar.SECOND, (int) second);
            System.out.println(simpleDateFormat.format(cal.getTime()));
    
            // 초가 소숫점 3자리까지 있는 경우
            second = 1.345;
            // Calendar.MILLISECOND 사용, 초에 1000을 곱함
            cal.add(Calendar.MILLISECOND, (int)(second * 1000));
            System.out.println(simpleDateFormat.format(cal.getTime()));
            
    //
    2016-09-15 01:00:06.002
    2016-09-15 01:00:07.347

     

    - 빼기

     // 시간 초 소숫점 자리까지 더하기, 빼기
            String dateStr = "2016-09-15 01:00:04.002";
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS");
            double second = 2.000; // 2초
    
            Date date = simpleDateFormat.parse(dateStr);
            Calendar cal = Calendar.getInstance();
            cal.setTime(date);
            cal.add(Calendar.SECOND, (int) -second);
            System.out.println(simpleDateFormat.format(cal.getTime()));
    
            // 초가 소숫점 3자리까지 있는 경우
            second = 1.345;
            // Calendar.MILLISECOND 사용, 초에 1000을 곱함
            cal.add(Calendar.MILLISECOND, (int)(-second * 1000));
            System.out.println(simpleDateFormat.format(cal.getTime()));
            
    //
    2016-09-15 01:00:02.002
    2016-09-15 01:00:00.657

    '코딩 테스트 > TIP' 카테고리의 다른 글

    [코딩테스트] 2차원배열 회전하기  (1) 2021.05.24
    [JAVA] 10진수 n진수로 변환하기  (0) 2020.11.21
    [JAVA] 문자열이 영어로만 이루어져 있는지 판별하기(Pattern.mathces())  (0) 2020.11.10
    [JAVA] 아스키(ASCII) 코드 값 구하기  (0) 2020.11.10
    [JAVA] 최대 공약수(GCD), 최소 공배수(LCM) 구하기  (2) 2020.10.29
      '코딩 테스트/TIP' 카테고리의 다른 글
      • [코딩테스트] 2차원배열 회전하기
      • [JAVA] 10진수 n진수로 변환하기
      • [JAVA] 문자열이 영어로만 이루어져 있는지 판별하기(Pattern.mathces())
      • [JAVA] 아스키(ASCII) 코드 값 구하기
      갓생사는 김초원의 개발 블로그
      갓생사는 김초원의 개발 블로그
      갓생사는 김초원의 개발 블로그 github: https://github.com/kimchowon

      티스토리툴바