Java가 개발되는 동안, 나는 필연적으로 날짜 유형에 얽혀있었습니다. 프로젝트가 자주 사용하는 날짜 관련 운영을 요약하려고했습니다. JDK 버전 1.7. 일어나서 움직여 커피 한 잔을 만들기 위해 몇 분을 절약 할 수 있다면 좋을 것입니다. 헤헤. 물론, 나는 실행 가능한 솔루션 만 제공하며 모범 사례임을 보장하지 않으며 토론을 환영합니다.
1. 날짜 값
Old JDK 시대에는 날짜 값 측면에서 java.util.date 클래스를 사용한 많은 코드가있었습니다. 그러나 날짜 클래스는 국제화를 달성하기에 편리하지 않으므로 JDK1.1에서 시작하는 시간 및 날짜 처리를 위해 java.util.calendar 클래스를 사용하는 것이 좋습니다. 날짜 클래스의 작업을 여기에 소개하지 않을 것입니다. 주제와 달력 클래스를 사용하여 현재 날짜와 시간을 얻는 방법으로 바로 가자.
Calendar의 생성자 방법은 Protected에 의해 수정되므로 API에 제공된 getinstance 방법을 통해 캘린더 객체를 생성합니다.
// 캘린더 객체를 생성하기위한 여러 개의 과부하 메소드가 있습니다. 캘린더 now = calendar.getInstance (); // 기본값 // 시간대와 영역을 지정하거나 매개 변수 중 하나만 입력 할 수 있습니다. 캘린더는 지금 = calendar.getInstance (TimeZone, Locale);
그런 다음 객체를 통해 현재 다양한 시간 매개 변수를 얻을 수 있습니다.
int 년 = now.get (calendar.year); //, 현재 연도 int month = now.get (calendar.month) +; //, 현재 달, int day = now.get (calendar.date)를 추가하십시오. //, 현재 날짜 날짜 = now.getTime (); // 직접 유형 날짜를 얻습니다
다른 유형의 시간 데이터를 얻으려면 now.get ()에서 매개 변수 만 수정하면됩니다. 위의 세 매개 변수 외에도 일반적으로 사용되는 다른 매개 변수는 다음과 같습니다.
• calendar.day_of_month : 날짜, calendar.date와 동일합니다
• 캘린더. 시간 : 12 시간
• Calendar.hour_of_day : 24 시간 시스템의 시간 수
• 캘린더. 매니트 : 분
• 달력 : 초 : 초
• calendar.day_of_week : 주간
시간 데이터를 얻는 것 외에도 캘린더 객체를 통해 다양한 시간 매개 변수를 설정할 수도 있습니다.
// 특정 필드의 값 만 설정 // public final void set (int field, int value) now.set (calendar.year,); // 연도, 월, 일, 시간, 시간, 일, 시간, 시간, 분, 두 번째 // 공개 최종 void 세트 (int 연도, int month, int date [, int hourofday, int minute, int second]) now.set (,, [,,]); // 유형 날짜 가입 날짜 직접 // 공개 최종 무효 SETTIME (날짜) now.set (날짜);
알아채다:
• 시간 매개 변수가 설정되면 다른 관련 값이 다시 계산됩니다. 예를 들어, 날짜를 11 일로 설정하면 해당 변경 사항이 주에 이루어집니다.
• 당신이 얻는 달은 플러스 1입니다. 실제 달은 그 달입니다.
• 달력 클래스에서 일요일은 1, 월요일은 2입니다.
2. 날짜 변환
날짜에 대해 채팅 한 후 날짜 변환에 대해 이야기 해 봅시다. 변환은 일반적으로 날짜 유형 날짜와 문자열 유형 문자열 사이의 상호 변환입니다. 나는 주로 변환 작업에 java.text.simpledateformat을 사용합니다.
simpledateformat sdf = new simpledateformat ( "yyyy-mm-dd hh : mm : ss"); 시도 {// String Calendar Calendar = Calendar.getInstance (); 날짜 = calendar.gettime (); 문자열 datestringparse = sdf.format (날짜); // 현재까지 문자열 string datestring datestring = "- ::"; 날짜 dateparse = sdf.parse (datestring); } catch (parseException e) {e.printstacktrace (); }알아채다:
• SimpledateFormat 객체를 만들 때 변환 형식을 지정해야합니다.
• 전환 형식은 사례 민감성이고, YYYY는 연도, MM은 월을 나타내고, DD는 날짜를 나타내고, HH는 2011 년의 시간을 나타내고, HH는 1011의 시간을 나타내고, MM은 분을 나타내며, SS는 초를 나타냅니다.
3. 날짜 추가 및 뺄셈
일반적으로 말하면 날짜에 두 가지 추가 및 뺄셈 작업을 수행합니다.
• 날짜를 기준으로, 전/이후, 전/이후, 전/후/이후 또는 다른 시간 단위를 계산하십시오.
// 캘린더 계산 now = calendar.getInstance (); now.add (calendar.year,); // 현재 시간의 해 이후 지금 .add (calendar.year, -); // 현재 시간의 연도 이전 // Calendar SpecialDate = Calendar.getInstance (); SpecialDate.settime (날짜); // SpecialDate의 값은 특정 날짜 SpecialDate.add (Calendar.year,)로 변경됩니다. // 특정 시간의 해 이후 SpecialDate.Add (Calendar.year, -); // 특정 시간의 해 전에
캘린더 객체의 추가 방법이 사용됩니다. 캘린더를 변경할 수 있습니다. 모든 시간 단위 필드로 이동하여 다양한 시간 단위에서 날짜 계산을 완료 할 수 있습니다.
• 예를 들어 2016 년 1 월 1 일에 며칠이 지남에 따라 두 번 사이의 간격을 계산하십시오.
simpledateformat sdf = new simpledateformat ( "yyyy-mm-dd hh : mm : ss"); 문자열 datestring = "- ::"; 캘린더 캘린더 = calendar.getInstance (); long nowdate = calendar.gettime (). gettime (); //date.gettime () get get get get get {long specialdate = sdf.parse (datestring) .gettime (); long betweendate = (specialDate -nowdate) / ( * * *); // 며칠 간격의 계산, 밀리 초의 변환 공식으로 일을할수록 System.out.print (betweendate); } catch (parseException e) {e.printstacktrace (); } 4. 날짜 비교
이전 코드를 살펴보면 날짜 비교 작업을 수행 할 때마다 먼저 날짜를 "yyyymmdd"형식의 문자열로 변환 한 다음 문자열을 값으로 변환 한 다음 값 크기를 비교하는 것을 발견했습니다. 하하, 간단한 비교 작업이지만, 쓰기에는 12 줄 이상의 코드가 필요합니다. 이제 올바른 날짜 비교 자세에 대해 이야기해야합니다.
날짜 비교에는 일반적으로 Java.util.date 또는 java.util.calendar에 공통적 인 두 가지 방법이 있습니다. 하나는 () 이후 ()를 통한 이전 () 메소드와 비교하고, 다른 하나는 비교 () 메소드를 통해 비교 () 메소드를 비교하는 것입니다.
simpledateformat sdf = new simpledateformat ( "yyyy-mm-dd hh : mm : ss"); String datestring_01 = "2016-01-01 11:11:11"; String datestring_02 = "2016-01-02 11:11:11"; try date {date_01 = sdf.parse (datestring_01)); 날짜 _02 = sdf.parse (datestring_02); System.out.println (date_01.before (date_02)); // true, date_01이 true 일 때 date_02보다 작을 때, 그렇지 않으면 false system.out.println (date_02.after (date_01)); // date_02가 date_01보다 클 때, 그렇지 않으면 false system.out.println (date_01.compareto (date_02)); // -1, date_01이 date_02보다 작을 때 -1 system.out.println (date_02.compareto (date_01)); // 1, date_02가 date_01보다 클 때 1 System.out.println (date_02.compareto (date_02)); // 0, 두 날짜가 같으면 0} catch (parseexception e) {e.printstacktrace ();}위는이 기사에서 귀하에게 소개 된 Java의 일반적인 날짜 작업 (값, 전환, 추가 및 뺄셈, 비교)에 대한 전체 설명입니다. 나는 당신이 그것을 좋아하기를 바랍니다.