자바 에서 자주 사용 하 는 날짜 처리 클래스

19538 단어 Java
머리말
날짜 처 리 는 자바 에서 매우 복잡 한 내용 으로 날짜 의 국제 화,날짜 와 시간의 전환,날짜 의 가감 연산,날짜 의 전시 형식 등 문 제 를 포함한다.또 일부 면접 에서 도 물 어 볼 수 있어 이 부분 을 정리 했다.주로 다음 과 같은 네 가지 유형 과 관련된다.
  • Date
  • Calendar
  • DateFormat
  • SimpleDateFormat

  • Date 류 는 비교적 자주 사용 하 는 편 이기 때문에 여 기 는 뒤의 세 가지 만 정리 했다.
    캘 린 더 클래스
    이것 은 추상 적 인 유형 으로 특정한 순간 과 YEAR,MONTH,DAY 와 같은 그룹 입 니 다.OF_MONTH,HOUR 등 달력 필드 간 전환 방법 을 제공 하고 달력 필드(예 를 들 어 다음 주 날 짜 를 얻 는 것)를 조작 하 는 방법 을 제공 합 니 다.
    Calendar 클래스 의 일반적인 대상 가 져 오기
    Calendar 는 이 유형의 일반적인 대상 을 얻 기 위해 클래스 방법getInstance을 제공 합 니 다.
    Calendar now = Calendar.getInstance();
    

    달력 필드 를 가 져 오고 설정 하 는 방법Calendar달력 필드 의 필드 값 을 set 등 방법 으로 설정 하고get,getTimeInMills,getTime등 방법 으로 달력 필드 를 설정 할 수 있 습 니 다.
    Calendar cal Calendar.getInstance();
    cal.setTime(new Date());
    int year = cal.get(Calendar.YEAR);
    int month = (cal.get(Calendar.MONTH))+1; // 0    
    System.out.println(cal.getTime());//   Wed Jul 03 12:49:38 CST 2019
    System.out.println(year);//  2019
    System.out.println(month);//  7
    

    캘 린 더 가감 법
    Calendar 대상 의 사용**add방법 으로 시간의 가감 조작**을 진행 하 는데 그 중에서 두 번 째 매개 변 수 는 양수 로'가'를 나타 내 고 음 수 는'감'을 나타 낸다.다음은 Calendar 클래스 의 add 방법 에 대한 정의 입 니 다.
    /**
         * Adds or subtracts the specified amount of time to the given calendar field,
         * based on the calendar's rules. For example, to subtract 5 days from
         * the current time of the calendar, you can achieve it by calling:
         * 

    add(Calendar.DAY_OF_MONTH, -5). * * @param field the calendar field. * @param amount the amount of date or time to be added to the field. * @see #roll(int,int) * @see #set(int,int) */

    /** * : * , 。 * , 5 , :add(Calendar.DAY_OF_MONTH,-5) 。 * @param 。 * @param 。 **/ abstract public void add(int field, int amount);

    예 를 들 어 add 방법 을 사용 합 니 다.
    Calendar cal Calendar.getInstance();
    cal.setTime(new Date());
    System.out.println(cal.getTime());//   Wed Jul 03 12:49:38 CST 2019
    cal.add(Calendar.YEAR,-1);//   1 
    cal.add(Calendar.MONTH,3);//   3  
    cal.add(Calendar.DAY_OF_MONTH,10);//   10 
    System.out.println(cal.getTime());//  Sat Oct 13 12:55:14 CST 2018
    System.out.println(cal.get(Calendar.YEAR));//2018
    System.out.println(cal.get(Calendar.MONTH));//9
    System.out.println(cal.get(Calendar.DAY_OF_MONTH));//13
    

    DataFormat 클래스
    DataFormat 은 날짜/시간 을 포맷 하 는 추상 적 인 클래스 로 날짜 나 시간 을 포맷 하거나 해석 할 수 있 으 며 시간 대상 을 서로 변환 할 수 있 습 니 다.
    DataFormat 대상 인 스 턴 스 가 져 오기
    DataFormat 은 추상 적 인 클래스 로 이러한 대상 을 만 들 수 없 으 며 정적 방법getDataInstance,getTimeInstance,getDataTimeInstance을 사용 하여 날짜 시간 형식 대상 을 얻어 야 합 니 다.
    DataFormat df = DataFormat.getDataInstance(); 
    //  
    DataFormat df1 = DataFormat.getDateInstance(DateFormat.LONG,LONG FRANCE);
    

    날짜 포맷 문자열
    날짜,시간 을 문자열 로 포맷 하고 주로**format**방법 을 사용 합 니 다.예컨대
    DataFormat df = DataFormat.getDataInstance(); 
    String dfStr = df.format(new Date());
    

    문자열 을 날짜 로 해석
    문자열 을 날짜 로 해석 하고 주로**parse**방법 을 사용 합 니 다.예컨대
    DataFormat df = DataFormat.getDataInstance(); 
    Date d1 = df.parse("2019-7-3")
    

    SimpleDateFormat 클래스SimpleDateFormatDateFormat의 하위 클래스 입 니 다.이 종 류 는 가방 java.text 에서 사용자 정의 날짜-시간 형식의 모드 를 허용 하고 이 모드 를 이용 하여 날짜 와 시간 을 표시 합 니 다.
    Simple DateFormat 대상 생 성
    **new**키 워드 를 사용 하여 Simple DateFormat 클래스 대상 을 만 듭 니 다.예 를 들 어
    SimpleDateFormat fmt1 = new SimpleDateFormat();
    SimpleDateFormat fmt2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    SimpleDateFormat fmt3 = new SimpleDateFormat("yyyy MM dd  HH mm ss ");
    

    포맷 날짜 시간 대상
    Simple DateFormat 클래스 는**format**방법 으로 날짜 와 시간 대상 을 포맷 합 니 다.예 를 들 어:
    Date now = new Date();
    String str1 = fm1.format(now);
    

    날짜 대상 으로 문자열 분석
    Simple DateFormat 클래스 는**parse**방법 으로 문자열 을 날짜 와 시간 대상 으로 분석 하고 Date 대상 을 되 돌려 줍 니 다.예 를 들 면:
    Date d1 = fmt1.parse("2019-07-03");
    

    전체 예
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    public class Calen {
    	public static void main(String[] args) throws ParseException {
    		
    		//                 
    		SimpleDateFormat fmt1 = new SimpleDateFormat();
    		SimpleDateFormat fmt2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    		SimpleDateFormat fmt3 = new SimpleDateFormat("yyyy MM dd  HH mm ss  E");
    
    		Date now = new Date();
    		
    		//   format                 
    		System.out.println(fmt1.format(now));
    		System.out.println(fmt2.format(now));
    		System.out.println(fmt3.format(now));
    		
    		//   parse         
    		SimpleDateFormat fmt4 = new SimpleDateFormat("yyyy-MM-dd");
    		Date d1 = fmt4.parse("2019-07-03");//                   
    		System.out.println(d1);
    	}
    }
    
    

    일반적인 패턴 문자열
    날짜 와 시간 모드 문자열 에서 따옴표 가 붙 지 않 은 알파벳'A'부터'Z','a'부터'z'까지 는 패턴 알파벳 으로 해석 되 어 날짜 나 시간 문자열 요 소 를 나타 낸다.다음 모드 알파벳 을 정의 합 니 다.
    자모
    날짜 또는 시간 요소
    Y
    연간
    M
    년 중 월
    w
    연중 주 수
    W
    월 중 주 수
    D
    연중 일수
    d
    월중 일수
    F
    월 중 주
    E
    요일
    H
    하루 중 시간 수(0~23)
    k
    하루 중 시간 수(1~24)
    K
    am/pm 의 시간 수(0~11)
    h
    am/pm 의 시간 수(1~12)
    m
    시간
    s
    분 초
    S
    밀리초 수

    좋은 웹페이지 즐겨찾기