자바 시간 처리 절차

달력
(1),Calender 소개
Calendar 의 중국어 번역 은 달력 입 니 다.실제로 역사상 시간 을 재 는 방법 은 여러 가지 가 있 습 니 다.따라서 시간의 통일 을 위해 달력 의 선택 을 지정 해 야 합 니 다.그러면 현재 가장 보급 되 고 통용 되 는 달력 은 바로'Gregorian Calendar'이다.바로 우리 가 연 도 를 이야기 할 때 자주 사용 하 는'서기**년'이다.Calendar 는 자바 에서 추상 적 인 클래스(Abstract Class)이 고 Gregorian Calendar 는 구체 적 인 실현 입 니 다.Calendar.getInstance()에서 얻 은 인 스 턴 스 는'GreogrianCalendar'대상 입 니 다.
(2)간단 한 날짜 사용

Calendar cal = Calendar.getInstance();
System.out.println(cal.get(Calendar.DATE));//-----------------------     
System.out.println(cal.get(Calendar.DAY_OF_MONTH));//---------------         
System.out.println(cal.get(Calendar.DAY_OF_WEEK));//----------------        ,       ,    3
System.out.println( cal.get(Calendar.DAY_OF_YEAR));//----------------         
System.out.println( cal.get(Calendar.HOUR));//-----------------------          12   
System.out.println( cal.get(Calendar.HOUR_OF_DAY));//----------------          24   ,          
System.out.println(cal.get(Calendar.MILLISECOND));//----------------     
System.out.println( cal.get(Calendar.MINUTE));//---------------------     
System.out.println( cal.get(Calendar.SECOND));//---------------------     
System.out.println(cal.get(Calendar.WEEK_OF_MONTH));//--------------           
System.out.println(cal.get(Calendar.WEEK_OF_YEAR));//----------------           
System.out.println(cal.get(Calendar.MONTH));//-----------------------       +1,  ,      -1

System.out.println(cal.get(Calendar.MONTH)-1);     //          
(3),Date 와 의 전환

Calendar calendar = Calendar.getInstance();
//    Calendar       Date   

Date date = calendar.getTime();

//   Date         Calendar    ,
//        ,     Date   
calendar.setTime(date);

       0   1,        ,   7   8。
calendar.set(Calendar.MONTH, 7);

  2000-01-01    

calendar.set(2000,1,1)

calendar.get(calendar.DAY_OF_WEEK )
물론 Calender 는 최초 로 처리 한 것 으로 jdk 1.6 의 물건 은 비교적 시대 에 뒤떨어 질 수 밖 에 없다.
2.Apache 의 DateUtils
(1)가방 도입

<dependency>
       <groupId>org.apache.commons</groupId>
       <artifactId>commons-lang3</artifactId>
       <version>3.9</version>
</dependency>
(2)할 말 없 이 통역 하면 돼

    /**
     *            
     */
    public static final long MILLIS_PER_SECOND = 1000
    /**
     *            
     */
    public static final long MILLIS_PER_MINUTE = 60 * MILLIS_PER_SECOND
    /**
     *            
     */
    public static final long MILLIS_PER_HOUR = 60 * MILLIS_PER_MINUTE
    /**
     *            
     */
    public static final long MILLIS_PER_DAY = 24 * MILLIS_PER_HOUR
    /**
     *         ,                   。
     */
    public static final int SEMI_MONTH = 1001
    /**
     *    ,        。
     */
    public static final int RANGE_WEEK_SUNDAY = 1
    /**
     *    ,       。
     */
    public static final int RANGE_WEEK_MONDAY = 2
    /**
     *    ,        。
     */
    public static final int RANGE_WEEK_RELATIVE = 3
    /**
     *    ,        。
     */
    public static final int RANGE_WEEK_CENTER = 4
     /**
     *    ,       。
     */
    public static final int RANGE_MONTH_SUNDAY = 5
    /**
     *    ,       。
     */
    public static final int RANGE_MONTH_MONDAY = 6
     /**
     *              ,               , :DateUtils.parseDate(str) 。
     *              javabeen         。  
     */
    public DateUtils()
    /**
     *                。
     *
     * @param date1       ,    , null
     * @param date2       ,    , null
     */
    public static boolean isSameDay(final Date date1, final Date date2)
    /**
     *                。   
     *
     * @param cal1       ,    , null
     * @param cal2       ,    , null
     */
    public static boolean isSameDay(final Calendar cal1, final Calendar cal2)
    /**
     *           
     *                 
     *
     * @param date1       ,    , null
     * @param date2       ,    , null
     */
    public static boolean isSameInstant(final Date date1, final Date date2)
    /**
     *           
     *                 
     *
     * @param cal1       ,    , null
     * @param cal2       ,    , null
     */
    public static boolean isSameInstant(final Calendar cal1, final Calendar cal2)
    /**
     *               
     *                     
     *
     * @param cal1       ,    , null
     * @param cal2       ,    , null
     */
    public static boolean isSameLocalTime(final Calendar cal1, final Calendar cal2)
    /**
     *    parsePatterns                    str 。
     * 
     *         parsePatterns    ,        ,      ParseException 。
     * 
     * @param str           , null
     * @param parsePatterns      str     ,      , null
     */
    public static Date parseDate(final String str, final String... parsePatterns) throws ParseException
    /**
     *    parsePatterns                    str 。
     *               locale 。
     * 
     *         parsePatterns    ,        ,      ParseException 。
     * 
     * @param str           , null
     * @param locale   locale       ,   null,        locale
     * @param parsePatterns      str     ,      , null
     */
    public static Date parseDate(final String str, final Locale locale, final String... parsePatterns) throws ParseException
    /**
     *    parsePatterns                    str 。
     *
     *         parsePatterns    ,        ,      ParseException 。
     *              ,  :"February 942, 1996" 。
     * 
     * @param str           , null
     * @param parsePatterns      str     ,      , null
     */
    public static Date parseDateStrictly(final String str, final String... parsePatterns) throws ParseException
    /**
     *    parsePatterns                    str 。
     *               locale 。
     *
     *         parsePatterns    ,        ,      ParseException 。
     *              ,  :"February 942, 1996" 。
     * 
     * @param str           , null
     * @param locale   locale       ,   null,        locale
     * @param parsePatterns      str     ,      , null
     */
    public static Date parseDateStrictly(final String str, final Locale locale, final String... parsePatterns) throws ParseException
    /**
     *    date   amount  。
     *
     * @param date       , null
     * @param amount       ,     
     */
    public static Date addYears(final Date date, final int amount)
    /**
     *    date   amount  。
     *
     * @param date       , null
     * @param amount       ,     
     */
    public static Date addMonths(final Date date, final int amount)
    /**
     *    date   amount  。
     *
     * @param date       , null
     * @param amount       ,     
     */
    public static Date addWeeks(final Date date, final int amount)
    /**
     *    date   amount  。
     *
     * @param date       , null
     * @param amount       ,     
     */
    public static Date addDays(final Date date, final int amount)
    /**
     *    date   amount   。
     *
     * @param date       , null
     * @param amount        ,     
     */
    public static Date addHours(final Date date, final int amount)
    /**
     *    date   amount   。
     *
     * @param date       , null
     * @param amount        ,     
     */
    public static Date addMinutes(final Date date, final int amount)
    /**
     *    date   amount  。
     *
     * @param date       , null
     * @param amount       ,     
     */
    public static Date addSeconds(final Date date, final int amount)
    /**
     *    date   amount    。
     *
     * @param date       , null
     * @param amount        ,     
     */
    public static Date addMilliseconds(final Date date, final int amount)
     /**
     *    data         。
     *
     * @param date      , null
     * @param amount       
     */
    public static Date setYears(final Date date, final int amount)
     /**
     *    data         。
     *
     * @param date      , null
     * @param amount       
     */
    public static Date setMonths(final Date date, final int amount)
    /**
     *    data        。
     *
     * @param date      , null
     * @param amount      
     */
    public static Date setDays(final Date date, final int amount)
    /**
     *    data         。
     *
     * @param date      , null
     * @param amount       
     */
    public static Date setHours(final Date date, final int amount)
     /**
     *    data         。
     *
     * @param date      , null
     * @param amount       
     */
    public static Date setMinutes(final Date date, final int amount)
    /**
     *    data        。
     *
     * @param date      , null
     * @param amount      
     */
    public static Date setSeconds(final Date date, final int amount)
    /**
     *    data         。
     *
     * @param date      , null
     * @param amount       
     */
    public static Date setMilliseconds(final Date date, final int amount)
    /**
     *            。
     */
    public static Calendar toCalendar(final Date date)
    /**
     *     field      date 。
     *
     *   ,         28 Mar 2002 13:45:01.231,
     *   field HOUR,     28 Mar 2002 14:00:00.000;
     *   field MONTH,     1 April 2002 0:00:00.000 。
     * 
     * @param date       , null
     * @param field    
     */
    public static Date round(final Date date, final int field)
    /**
     *     field      date 。
     *
     *   ,         28 Mar 2002 13:45:01.231,
     *   field HOUR,     28 Mar 2002 14:00:00.000;
     *   field MONTH,     1 April 2002 0:00:00.000 。
     * 
     * @param date       , null
     * @param field      
     */
    public static Calendar round(final Calendar date, final int field)
    /**
     *     field      date 。
     *
     *   ,         28 Mar 2002 13:45:01.231,
     *   field HOUR,     28 Mar 2002 14:00:00.000;
     *   field MONTH,     1 April 2002 0:00:00.000 。
     * 
     * @param date       , null
     * @param field     
     */
    public static Date round(final Object date, final int field)
    /**
     *     field    date 。
     *
     *   ,         28 Mar 2002 13:45:01.231,
     *   field HOUR,     28 Mar 2002 13:00:00.000;
     *   field MONTH,     1 Mar 2002 0:00:00.000 。
     * 
     * @param date       , null
     * @param field     
     */
    public static Date truncate(final Date date, final int field)
     /**
     *     field    date 。
     *
     *   ,         28 Mar 2002 13:45:01.231,
     *   field HOUR,     28 Mar 2002 13:00:00.000;
     *   field MONTH,     1 Mar 2002 0:00:00.000 。
     * 
     * @param date       , null
     * @param field    
     */
    public static Calendar truncate(final Calendar date, final int field)
    /**
     *     field    date 。
     *
     *   ,         28 Mar 2002 13:45:01.231,
     *   field HOUR,     28 Mar 2002 13:00:00.000;
     *   field MONTH,     1 Mar 2002 0:00:00.000 。
     * 
     * @param date       , null
     * @param field    
     */
    public static Date truncate(final Object date, final int field)
    /**
     *     field      date 。
     *
     *   ,         28 Mar 2002 13:45:01.231,
     *   field HOUR,     28 Mar 2002 14:00:00.000;
     *   field MONTH,     1 Apr 2002 0:00:00.000 。
     * 
     * @param date       , null
     * @param field    
     */
    public static Date ceiling(final Date date, final int field)
    /**
     *     field      date 。
     *
     *   ,         28 Mar 2002 13:45:01.231,
     *   field HOUR,     28 Mar 2002 14:00:00.000;
     *   field MONTH,     1 Apr 2002 0:00:00.000 。
     * 
     * @param date       , null
     * @param field    
     */
    public static Calendar ceiling(final Calendar date, final int field)
    /**
     *     field      date 。
     *
     *   ,         28 Mar 2002 13:45:01.231,
     *   field HOUR,     28 Mar 2002 14:00:00.000;
     *   field MONTH,     1 Apr 2002 0:00:00.000 。
     * 
     * @param date       , null
     * @param field    
     */
    public static Date ceiling(final Object date, final int field)
    /**
     *        focus     rangeStyle            。
     *
     *        Thursday, July 4, 2002,     RANGE_MONTH_SUNDAY,
     *            Sunday, June 30, 2002   Saturday, August 3, 2002
     *
     * @param focus       
     * @param rangeStyle      ,        :
     * DateUtils.RANGE_MONTH_SUNDAY, 
     * DateUtils.RANGE_MONTH_MONDAY,
     * DateUtils.RANGE_WEEK_SUNDAY,
     * DateUtils.RANGE_WEEK_MONDAY,
     * DateUtils.RANGE_WEEK_RELATIVE,
     * DateUtils.RANGE_WEEK_CENTER
     */
    public static Iterator<Calendar> iterator(final Date focus, final int rangeStyle)
    /**
     *        focus     rangeStyle            。
     *
     *        Thursday, July 4, 2002,     RANGE_MONTH_SUNDAY,
     *            Sunday, June 30, 2002   Saturday, August 3, 2002
     *
     * @param focus       
     * @param rangeStyle      ,        :
     * DateUtils.RANGE_MONTH_SUNDAY, 
     * DateUtils.RANGE_MONTH_MONDAY,
     * DateUtils.RANGE_WEEK_SUNDAY,
     * DateUtils.RANGE_WEEK_MONDAY,
     * DateUtils.RANGE_WEEK_RELATIVE,
     * DateUtils.RANGE_WEEK_CENTER
     */
    public static Iterator<Calendar> iterator(final Calendar focus, final int rangeStyle)
    /**
     *        focus     rangeStyle            。
     *
     *        Thursday, July 4, 2002,     RANGE_MONTH_SUNDAY,
     *            Sunday, June 30, 2002   Saturday, August 3, 2002
     *
     * @param focus       
     * @param rangeStyle      ,    iterator(Calendar, int)        
     */
    public static Iterator<?> iterator(final Object focus, final int rangeStyle)
 
/**
     *             。        DateFields     。
     *
     *         ,           (       0 999  ) 。
     *        : Calendar.YEAR、Calendar.MONTH、Calendar.DAY_OF_YEAR、
     * Calendar.DATE、Calendar.HOUR_OF_DAY、Calendar.MINUTE、
     * Calendar.SECOND   Calendar.MILLISECOND
     *         MILLISECOND,   0 。
     * 
     *  January 1, 2008 7:15:10.538 with Calendar.SECOND as fragment will return 538
     *  January 6, 2008 7:15:10.538 with Calendar.SECOND as fragment will return 538
     *  January 6, 2008 7:15:10.538 with Calendar.MINUTE as fragment will return 10538
     *  January 16, 2008 7:15:10.538 with Calendar.MILLISECOND as fragment will return 0
     *   (a millisecond cannot be split in milliseconds)
     * 
     * @param calendar         , null
     * @param fragment    
     */
  public static long getFragmentInMilliseconds(final Calendar calendar, final int fragment)
    /**
     *            。        DateFields     。
     *
     *        ,            (       0 59  ) 。
     *        : Calendar.YEAR、Calendar.MONTH、Calendar.DAY_OF_YEAR、
     * Calendar.DATE、Calendar.HOUR_OF_DAY、Calendar.MINUTE、
     * Calendar.SECOND   Calendar.MILLISECOND
     *         SECOND,   0 。
     * 
     *  January 1, 2008 7:15:10.538 with Calendar.MINUTE as fragment will return 10
     *  January 6, 2008 7:15:10.538 with Calendar.MINUTE as fragment will return 10
     *  January 6, 2008 7:15:10.538 with Calendar.DAY_OF_YEAR as fragment will return 26110
     *   (7*3600 + 15*60 + 10)</li>
     *  January 16, 2008 7:15:10.538 with Calendar.MILLISECOND as fragment will return 0
     * 
     * @param calendar         , null
     * @param fragment    
     */
    public static long getFragmentInSeconds(final Calendar calendar, final int fragment)
    /**
     *             。        DateFields     。
     *
     *         ,             (       0 59  )
     *        : Calendar.YEAR、Calendar.MONTH、Calendar.DAY_OF_YEAR、
     * Calendar.DATE、Calendar.HOUR_OF_DAY、Calendar.MINUTE、
     * Calendar.SECOND   Calendar.MILLISECOND
     *         MINUTE,   0 。
     * 
     *  January 1, 2008 7:15:10.538 with Calendar.HOUR_OF_DAY as fragment will return 15
     *  January 6, 2008 7:15:10.538 with Calendar.HOUR_OF_DAY as fragment will return 15
     *  January 1, 2008 7:15:10.538 with Calendar.MONTH as fragment will return 15
     *  January 6, 2008 7:15:10.538 with Calendar.MONTH as fragment will return 435 (7*60 + 15)
     *  January 16, 2008 7:15:10.538 with Calendar.MILLISECOND as fragment will return 0
     * 
     * @param calendar         , null
     * @param fragment    
     */
    public static long getFragmentInMinutes(final Calendar calendar, final int fragment)
    /**
     *             。        DateFields     。
     *
     *         ,            (       0 23  ) 。
     *        : Calendar.YEAR、Calendar.MONTH、Calendar.DAY_OF_YEAR、
     * Calendar.DATE、Calendar.HOUR_OF_DAY、Calendar.MINUTE、
     * Calendar.SECOND   Calendar.MILLISECOND
     *         HOUR_OF_DAY,   0 。
     *  
     *  January 1, 2008 7:15:10.538 with Calendar.DAY_OF_YEAR as fragment will return 7
     *  January 6, 2008 7:15:10.538 with Calendar.DAY_OF_YEAR as fragment will return 7
     *  January 1, 2008 7:15:10.538 with Calendar.MONTH as fragment will return 7
     *  January 6, 2008 7:15:10.538 with Calendar.MONTH as fragment will return 127 (5*24 + 7)
     *  January 16, 2008 7:15:10.538 with Calendar.MILLISECOND as fragment will return 0
     *  
     * @param calendar         , null
     * @param fragment    
     */
    public static long getFragmentInHours(final Calendar calendar, final int fragment)
    /**
     *            。        DateFields     。
     *
     *         ,           (       1 31  ) 。
     *        : Calendar.YEAR、Calendar.MONTH、Calendar.DAY_OF_YEAR、
     * Calendar.DATE、Calendar.HOUR_OF_DAY、Calendar.MINUTE、
     * Calendar.SECOND   Calendar.MILLISECOND
     *         DATE,   0 。
     * 
     *  January 28, 2008 with Calendar.MONTH as fragment will return 28
     *  February 28, 2008 with Calendar.MONTH as fragment will return 28
     *  January 28, 2008 with Calendar.YEAR as fragment will return 28
     *  February 28, 2008 with Calendar.YEAR as fragment will return 59
     *  January 28, 2008 with Calendar.MILLISECOND as fragment will return 0
     * 
     * @param calendar         , null
     * @param fragment    
     */
    public static long getFragmentInDays(final Calendar calendar, final int fragment)
    /**
     *            field        。
     * 
     * @param cal1        , null
     * @param cal2        , null
     * @param field Calendar    
     */
    public static boolean truncatedEquals(final Calendar cal1, final Calendar cal2, final int field)
    /**
     *            field        。
     * 
     * @param date1        , null
     * @param date2        , null
     * @param field Calendar    
     */
    public static boolean truncatedEquals(final Date date1, final Date date2, final int field)
    /**
     *            field    。
     *          、  、     ,        、0、   
     * 
     * @param cal1        , null
     * @param cal2        , null
     * @param field Calendar    
     */
    public static int truncatedCompareTo(final Calendar cal1, final Calendar cal2, final int field)
    /**
     *             field    。
     *          、  、     ,        、0、   
     * 
     * @param date1        , null
     * @param date2        , null
     * @param field Calendar    
     */
    public static int truncatedCompareTo(final Date date1, final Date date2, final int field)
	
	
	//    
	System.out.println(DateUtils.addDays(new Date(), 1));//-----------------    。   1          
    System.out.println(DateUtils.addHours(new Date(), 0));//----------------    
    Date date = DateUtils.addDays(new Date(), 1);
Date Utils 가 돌아 온 것 은 Date 를 바 꿀 필요 가 없다 는 것 입 니 다.물론 이 른 것 입 니 다.Calender 기반 위 에서 태 어 났 을 뿐 입 니 다.
3.JDK 1.8 새로 추 가 된 날짜 API LocalDate|LocalTime|LocalDateTime
새로운 날짜 API 는 변 하지 않 고 다 중 스 레 드 사용 환경 에서(기본 시간 대의 시스템 시계 에서 현재 날짜 시간 을 가 져 옵 니 다.시 차 는 생각 하지 않 아 도 된다)
장점:
1.이전에 사 용 했 던 java.util.Date 월 은 0 부터 시작 합 니 다.우 리 는 보통+1 로 사용 합 니 다.매우 불편 합 니 다.java.time.LocalDate 월 과 주 는 모두 enum 으로 바 뀌 었 습 니 다.
2.java.util.Date 와 Simple DateFormat 은 모두 스 레 드 가 안전 한 것 이 아니 라 LocalDate 와 LocalTime 은 가장 기본 적 인 String 과 마찬가지 로 변 하지 않 는 유형 으로 스 레 드 가 안전 할 뿐만 아니 라 수정 할 수 없습니다.
3.java.util.Date 는'만능 인터페이스'로 날짜,시간,그리고 밀리초 수 를 포함 하여 수 요 를 더욱 명확 하 게 취사선택 합 니 다.
4.새로운 인터페이스 가 더 좋 은 이 유 는 날짜 와 시간의 조작 을 고려 하여 앞으로 미 루 거나 며칠 뒤로 미 루 는 경우 가 자주 발생 하기 때 문 입 니 다.자바.util.Date 로 Calendar 에 맞 춰 많은 코드 를 써 야 하 며,일반적인 개발 자 들 이 반드시 맞 출 수 있 는 것 은 아니다.
(1)、LocalDateTime(년 월 일 시 분 초)

LocalDateTime date = LocalDateTime.now();
        //2021-03-26T10:24:14.009784900
        System.out.println(date);

		//          
        System.out.println(date.getYear());
        System.out.println(date.getMonthValue());
        System.out.println(date.getDayOfMonth());
        System.out.println(date.getHour());
        System.out.println(date.getMinute());
        System.out.println(date.getSecond());
        System.out.println(date.getNano());
		
		//                 
		 System.out.println(date.getSecond()+1);           ||        System.out.println(date.getSecond()-1);
		

        //       LocalDateTime  
        LocalDateTime date2 = LocalDateTime.of(2017, 12, 17, 9, 31, 31, 31);
        System.out.println(date2);
        //      ,        
        LocalDateTime date3 = date2.plusDays(12);
        System.out.println(date3);
        //      ,        
        LocalDateTime date4 = date3.minusYears(2);
        System.out.println(date4);
		
		isAfter()                   boolean   
		System.out.println(localDateTime.isBefore(LocalDateTime.now()));//---------  false
		
		isBefore()                    boolean   
		System.out.println(localDateTime.isAfter(LocalDateTime.now()));//---------  false
	
		isLeapYear()       (   LocalDate     )    boolean  
		System.out.println(localDateTime.isEqual(LocalDateTime.now()));//---------  true
(2),LocalDateTime 과 Date 사이 의 전환
Date to LocalDateTime

Date todayDate = new Date();

LocalDateTime ldt = Instant.ofEpochMilli( todayDate.getTime() )
        .atZone( ZoneId.systemDefault() )
        .toLocalDateTime();

System.out.println(ldt);
LocalDateTime to Date

LocalDateTime localDateTime = LocalDateTime.now();

Date date = Date.from( localDateTime.atZone( ZoneId.systemDefault()).toInstant());

System.out.println(date);
물론 재 미 있 는 것 도 많 습 니 다.LocalDate(년 월 일)LocalTime(시 분 초)과 LocalDateTime(년 월 일 시 분 초)이 크게 다 르 지 않 기 때문에 하 나 를 말 하면 됩 니 다.
4.Hutool(Java 도구 라 이브 러 리)
비교적 재 미 있 는 자바 도구 라 이브 러 리 로 재 미 있 는 도구 류 를 많이 포함 하여 간단 하고 편리 하 다.
(1)설치
Maven

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.6.1</version>
</dependency>
Gradle

compile 'cn.hutool:hutool-all:5.6.1'
Maven 중앙 창고
Hutool 5.x 는 JDK8+를 지원 합 니 다.Android 플랫폼 에 테스트 가 없 기 때문에 모든 도구 종류 나 도구 방법 이 사용 가능 하 다 고 보장 할 수 없습니다.프로젝트 에 JDK 7 을 사용한다 면 Hutool 4.x 버 전 을 사용 하 십시오.
(2)사용

	//             
	System.out.println(DateUtil.now());//------------------------------     
	
	                  ,       ,,,    。
총결산
한 마디 로 하면 재 미 있 는 도구 류 가 덩어리 져 있 습 니 다.jdk 원생 이 든 다른 사람 이 포장 한 도구 류 든 원 하 시 면 jdk 1.8 의 날짜 api 를 통 해 자신 만 의 날짜 도구 류 를 스스로 포장 할 수 있 습 니 다.인터넷 에 날짜 도구 류 가 너무 많 습 니 다.바퀴 를 중복 만 들 지 마 세 요~~~~~~~~~~~~~~~~~~~~~~오늘 도 원기 가 가득 찬 하루 입 니 다.
이상 은 자바 가 시간 처 리 를 하 는 절차 의 상세 한 내용 입 니 다.자바 시간 처리 에 관 한 자 료 는 다른 관련 글 을 주목 하 세 요!

좋은 웹페이지 즐겨찾기