Java로 날짜 및 시간 처리

10997 단어 Java

java.time.LocalDateTime(java8)

  • LocalDateTime now = LocalDateTime.now();
  • LocalDateTime ymd = LocalDateTime.of(2016, 1, 1, 0, 0);
  • LocalDateTime ymdhms = LocalDateTime.of(2016, 1, 1, 23, 59, 59);
  • int year = ymd.getYear();
  • int month = ymd.getMonth().getValue();
  • int date = ymd.getDayOfMonth();
  • DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH ss");
  • dtf.format(ymdms);
  • 참조 "일단 Java8의 날짜와 시간 API를 기억해주세요."
  • (java7이면) 조다타임.

  • 참조 "Joda-TTime을 사용한 날짜 처리 요약"
  • java.util.Date(최대한 사용하지 않음)

  • 날짜와 시간 데이터만 저장하는 클래스
  • 이 반에서'연월일'을 직접 얻는 방법은 이미 추천하지 않습니다.
  • DateFormat 클래스를 사용하여 포맷
  • SimpleDateFormat sdf = new SimpleDateFormat("kk:mm");
    // 11:30以前の場合
    if (sdf.parse(data.get(1)).compareTo(sdf.parse("11:30")) <= 0) {
      System.out.println("お昼前だよ");
    }
    
  • Calendar형으로 변환
  • cal.setTime(date);

  • BigDecimal형의 UTC에 따라 Date형을 제작하다
  • BigDecimal utc = (BigDecimal) array.get(0);
  • Date day = new Date(utc.longValue());
  • java.sql.Date로 변환
  •             public static java.sql.Date toSqlDate(java.util.Date date) {
                    return new java.sql.Date(date.getTime());
                }
    

    java.util.Calendar(가급적 사용하지 않음)

  • 월 0~11
  • Calendar cal = Calendar.getInstance();
  • cal.set(2015,11,31, 0, 0, 0);//2015/12/31 am0:00
  • cal.setTimeZone(TimeZone.getTimeZone("Asia/Tokyo"));
  • int year = cal.get(Calendar.YEAR);
  • int month = cal.get(Calendar.MONTH) - 1;
  • int date = cal.get(Calendar.DATE);
  • cal.add(Calendar.DAY_OF_MONTH, 1);//1일 합계
  • cal.add(Calendar.DAY_OF_MONTH, -2);//2일 빼기
  • cal.add(Calendar.MONTH, 1);//1개월 추가
  • cal.add(Calendar.YEAR, -1);//1년 감법
  • Date로 변환
  • Date date = cal.getTime();
  • java.text.SimpleDateFormat
  • SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH ss");
  • sdf.format(cal.getTime());
  • 처리 시간


    프로그램의 실행 시간을 계산하다

    org.apache.commons


    build.gradle
    compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.10'
    
    StopWatch stopWatch = new StopWatch();
    
    // 計測開始
    stopWatch.start();
    
    Thread.sleep(500);
    
    // 計測停止
    stopWatch.stop();
    
    // 経過時間出力
    System.out.println(stopWatch.getTime()); // ⇒500
    

    org.springframework.util.StopWatch

    StopWatch stopWatch = new StopWatch();
    stopWatch.start();
    // ... more
    stopWatch.stop();
    System.out.println(stopWatch.getTotalTimeMillis());
    System.out.println(stopWatch.prettyPrint());
    

    평면

        // 全体の「時間:分:秒」
         private String formatedTimeV2(long millis) {
                return String.format("%02d:%02d:%02d", 
                        TimeUnit.MILLISECONDS.toHours(millis),
                        TimeUnit.MILLISECONDS.toMinutes(millis) - 
                        TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)),
                        TimeUnit.MILLISECONDS.toSeconds(millis) - 
                        TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis))
                 );
         }
        // 個別の「分 min, 秒 sec」
        private String formatedTime(long millis) {
            return String.format("%d min, %d sec", 
                    TimeUnit.MILLISECONDS.toMinutes(millis),
                    TimeUnit.MILLISECONDS.toSeconds(millis) - 
                    TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis))
                );
        }
    
        @Test
        public void formatTime() throws InterruptedException {
            long start = System.currentTimeMillis();
            Thread.sleep(1000);
            long end = System.currentTimeMillis();
            System.out.println(formatedTime(end - start));
        }
    
    결실
    0 min, 1 sec
    

    좋은 웹페이지 즐겨찾기